基于springBoot的zookeeper集群搭建(dubbo2.*版本)

主机系统环境准备

Jdk1.7+,window系统(使用window10+window7),或者linux系统(本次测试使用centos7)

第一步:主机名称到ip地址映射配置

zookeeper集群中具有两个关键的角色:leader和follower。

集群中所有的结点作为一个整体对分布式应用提供服务,集群中每个结点之间都互相连接,所以,在配置的zookeeper集群的时候,每一个结点的host到ip地址的映射都要配置上集群中其它结点的映射信息。

例如,我的zookeeper集群中每个结点的配置,以master为例,/etc/hosts内容如下所示:

192.168.0.253              master(虚拟机linux系统)

192.168.0.219              follow-1(my 物理机 window系统)

192.168.0.133              follow-2(玉姐 物理机window系统)

第二步:配置防火墙端口(各主机之间)

window 系统关闭防火墙或者开放相应的端口,本系统中使用端口为2181,2888,3888

linux系统则使用systemctl iptables.service stop停止防火墙(不同linux版本命令有所差异)

本次测试中由于centos7防火墙关闭后无法访问网络,因此需要启用防火墙,配置开放端口

配置方式:

1.    找到防火墙对应的iptables文件,centos下路径为:/etc/sysconfig/iptables

2.    添加

-A INPUT -p tcp -m state–state NEW -m tcp –dport 80 -j ACCEPT(端口号)

-A INPUT -p tcp -m state–state NEW -m tcp –dport 2000:4000 -j ACCEPT(端口号范围)

 

第三步:主机之间连通性测试

使用ping命令做连通测试

Follow-1                               follow-2                                master

可能产生的问题,如果linux与window之间不通,则按照以下步骤检查

第四步:添加dubbo配置

1.    Pom文件依赖

<dependency>

 <

groupId>org.springframework.bootgroupId>

 <

artifactId>spring-boot-starter-dubboartifactId>

 <version>1.3.1.RELEASEversion>

<exclusions>

 <

exclusion>

 <

groupId>com.alibabagroupId>

 <

artifactId>dubboartifactId>

 </

exclusion>

 </

exclusions>

</

dependency>

1.  Yaml配置dubbo参数

——-privoder 提供者——-

spring:

dubbo:

registry:

address: 192.168.0.129:2181,192.168.0.165:2181,192.168.0.133:2181

protocol: zookeeper

protocol:

name: dubbo

host: 192.168.0.165

port: 20882

monitor:

protocol: registry

provider:

timeout: 120000

threadpool: fixed

threads: 100

accepts: 1000

——-customer 消费者——-

spring:

dubbo:

application:

name: atme-crm-service

registry:

address: 192.168.0.129:2181,192.168.0.165:2181,192.168.0.253:2181

protocol: zookeeper

protocol:

name: dubbo

prot: 20886

threads: 1000

heartbeat: 100000

host: 192.168.0.165

monitor:

protocol: registry

2.     启动项目引入dubbo配置

@ImportResource({“classpath:config/dubbo.xml”})

最后:遇到的那些坑

如果配置后出现Cannot open channel to 1 at election address /192.168.253.130:3888java.net.Co请按照如下步骤检查

1.  /conf/zoo.cfg dataDir与dataDirLog文件路径是否存在,如果不存在请手动创建

2.  检查dataDir路径下是否创建了myid文件,文件中是否存储了server.x 中 x的号码

3.  检查各zookeeper节点所在的宿主机的防火墙端口是否开启

以上如果都不行,请清空zookeeper 的pid,以及data与log文件夹下的文件

    原文作者:驼铃岁月
    原文地址: https://www.jianshu.com/p/d1dfe394c55d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞