一.简单环境(centos7.2下)
1.在zookeeper目录下创建data文件夹
2.修改zookeeper的conf/zoo_sample.cfg为zoo.cfg
3.在zoo.cfg中修改dataDir的值.
4.此时,配置完成.启动
zookeeper/bin/zkServer.sh start
zookeeper/bin/zkServer.sh status
zookeeper/bin/zkServer.sh stop
二.集群环境(centos7.2下)
在集群环境中,每个zookeeper都有一个id值,以此来进行通信和投票.
当某个zookeeper宕机时,其他zookeeper会对它进行通信,然后正常的zookeeper之间相互通信投票它是否真的宕机.
因为这个投票机制,所以集群版至少是3个zookeeper服务.
1.在3台服务器上部署单机版,假设服务器IP为 100,101,102
2.在每个服务器下zookeeper中的data文件夹中创建文件myid,并写入该zookeeper代表的id值,以便集群中的zookeeper进行通信.
例如: server100 --> echo 1 >>zookeeper/data/myidserver101 --> echo 2 >>zookeeper/data/myid
server102 --> echo 3 >>zookeeper/data/myid
3.在每个服务器下zookeeper的配置文件zoo.cfg中添加下面的代码
server.1=192.168.25.100:2881:3881
server.2=192.168.25.101:2881:3881
server.3=192.168.25.102:2881:3881
server后面的数字代表每个zookeeper的id值(myid文件),然后是IP地址,后面是通信和投票的端口.
三.spring整合dubbo
提供服务者:
<!-- 暴露服务 -->
<!-- 使用dubbo发布服务 -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="项目名" />
<!-- 注册服务工具zookeeper,address为其地址+端口,单机版配置一个,集群版用逗号分隔配置多个 -->
<dubbo:registry protocol="zookeeper"
address="192.168.25.100:2181,192.168.25.101:2181,192.168.25.133:2181" />
<!-- 用dubbo协议在20880端口暴露服务,可配置多个dubbo,该dubbo监听20881端口 -->
<dubbo:protocol name="dubbo" port="20881" />
<!-- 声明需要暴露的服务接口 -->
<!-- <dubbo:service interface="服务接口类" ref="引用的接口实现类bean的名字"
timeout="600000"/> -->
<dubbo:service interface="com.service.Test1Service" ref="test1ServiceImpl" timeout="600000" />
<dubbo:service interface="com.service.Test2Service" ref="test2ServiceImpl" timeout="600000" />
消费者配置:
<!-- 使用dubbo获取服务 -->
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="项目名" />
<!-- 注册服务工具zookeeper,address为其地址+端口,可用逗号分隔配置多个 -->
<dubbo:registry protocol="zookeeper"
address="192.168.25.100:2181,192.168.25.101:2181,192.168.25.133:2181" />
<!-- 声明依赖的服务接口 -->
<dubbo:reference interface="com.service.Test2Service" id="test2Service" />
<dubbo:reference interface="com.service.Test1Service" id="test1Service" />