主机系统环境准备

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.boot</ groupId >
    <
artifactId > spring-boot-starter-dubbo</ artifactId >

    <version>1.3.1.RELEASE</version>

    <exclusions>
        <
exclusion>
            <
groupId>com.alibaba</groupId>
            <
artifactId>dubbo</artifactId>
        </
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文件夹下的文件


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐