集群服务注册到多台zookeeper配置:
提供者:
<!-- ##############
配置Dubbo服务提供者 #############-->
<!-- 配置当前应用名称 -->
<!-- 配置当前应用名称 -->
<
dubbo
:application
name
="pinyougou-sellergoods-service"
/>
<!--
使用zookeeper注册中心暴露服务地址 -->
<!-- <dubbo:registry protocol="zookeeper" address="192.168.12.131:2181" />-->
<!-- <dubbo:registry protocol="zookeeper" address="192.168.12.131:2181" />-->
<
dubbo
:registry
protocol
="zookeeper"
address
="192.168.12.131:3181,192.168.12.131:3182,192.168.12.131:3183"
/>
<!--
用dubbo协议在20880端口暴露服务 -->
<
dubbo
:protocol
name
="dubbo"
port
="20880"
/>
<!--
配置采用包扫描来暴露服务 -->
<
dubbo
:annotation
package
="com.pinyougou.sellergoods.service.impl"
/>
消费者:
<!-- ###############
配置Dubbo的服务消费者 ################## -->
<!-- 当前应用的名称 -->
<!-- 当前应用的名称 -->
<
dubbo
:application
name
="pinyougou-manager-web"
/>
<!--
使用zookeeper注册中心发现暴露的服务地址 -->
<
dubbo
:registry
protocol
="zookeeper"
address
="192.168.12.131:3181,192.168.12.131:3182,192.168.12.131:3183"
/>
<!--
配置采用包扫描来引用服务,产生服务接口的代理对象 -->
<
dubbo
:annotation
package
="com.pinyougou.manager.controller"
/>
任何一个节点如果存活着,那么总体服务不回出现问题
命令启动3台zookeeper集群:
/usr/local/solr/solr-cloud/zookeeper01/bin/zkServer.shstart
/usr/local/solr/solr-cloud/zookeeper02/bin/zkServer.sh start
/usr/local/solr/solr-cloud/zookeeper03/bin/zkServer.sh start
查看zookeeper进程:ps -ef | grep zookeeper
强制杀死进程:kill -9 进程号
当强制关闭第一个zookeeper,kill-9 30412
2018-08-28 16:30:47,677[DubboZkclientConnector-SendThread(192.168.12.131:3182)][org.apache.zookeeper.ClientCnxn]-[DEBUG] Got ping response for sessionid:0x2000181af190001 after 1ms
控制台并没有报错,服务和应用能够正常运行。
当强制关闭第二个zookeeper,kill-9 30367
提供者会检测到zookeeper的情况,打印出错误信息。
2018-08-28 16:40:51,177[DubboZkclientConnector-SendThread(192.168.12.131:3183)] [org.apache.zookeeper.ClientCnxnSocketNIO]-[DEBUG]Ignoring exception during shutdown output
java.nio.channels.ClosedChannelException
atsun.nio.ch.SocketChannelImpl.shutdownOutput(SocketChannelImpl.java:797)
atsun.nio.ch.SocketAdaptor.shutdownOutput(SocketAdaptor.java:407)
atorg.apache.zookeeper.ClientCnxnSocketNIO.cleanup(ClientCnxnSocketNIO.java:207)
atorg.apache.zookeeper.ClientCnxn$SendThread.cleanup(ClientCnxn.java:1249)
atorg.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1173)
当zookeeper集群恢复到2个以上,提供方恢复稳定,不再报错。
更多技术咨询可关注:gzitcast