接上,ZooKeeper集群搭建完成以后,下一步就是对集群进行测试了
首先说明一下测试环境是Springboot+MySql,并且已经默认集成了dubbo,如果你的springboot没有集成dubbo,请先集成了dubbo,并且配置了相关文件之后再来做相关测试
首先需要导入的依赖是:
<dependency>
<groupId>com.gitee.reger</groupId>
<artifactId>spring-boot-starter-dubbo</artifactId>
<version>1.0.10</version>
</dependency>
进入该依赖,发现最主要的zkclient依赖已经被集成了,且版本也被管理起来了(下面只是一部分)
<!-- zkclient -->
<dependency>
<groupId>com.101tec</groupId>
<artifactId>zkclient</artifactId>
</dependency>
熟悉dubbo的应该知道,如果是spring还要配置类似下面的东西:
<dubbo:registry address="zookeeper://192.168.230.121:2181?backup=192.168.230.122:2181,192.168.230.123:2181"/>
这个东西我们在SpringBoot中怎么配置呢?
我们需要建立一个zookeeper的properties文件,之后在zookeeper.properties中写入下面的内容:
#配置注册中心
spring.dubbo.registry.protocol=zookeeper
spring.dubbo.registry.address=192.168.230.140:2181,192.168.230.140:2180,192.168.230.140:2179
之后启动相关项目就OK
测试
首先在centos上找出谁是leader,启用命令:
/usr/local/zookeeper-cluster/zk1/bin/zkServer.sh status 查看状态
如果是leader,停止
/usr/local/zookeeper-cluster/zk1/bin/zkServer.sh stop
然后查看服务是否仍然正常
一般来说,超过半数以上的zookeeper 被停掉了,整个集群就失效了
由于我们有3台zookeeper,停掉2台后,集群服务就失效了,但仍能访问,原因是:消费者默认会在缓存中再存一份生产者的地址,所以如果将生产者关掉后,服务就彻底失效了