專案部署(一):ZooKeeper叢集測試
阿新 • • 發佈:2019-01-01
接上,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臺後,叢集服務就失效了,但仍能訪問,原因是:消費者預設會在快取中再存一份生產者的地址,所以如果將生產者關掉後,服務就徹底失效了