主機系統環境準備
Jdk1.7+,window系統(使用window10+window7),或者linux系統(本次測試使用centos7)
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版本命令有所差異)
l?本次測試中由于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之間不通,則按照以下步驟檢查
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文件夾下的文件