1. 程式人生 > >關於dubbo+zookeeper微服務的一些認識記錄

關於dubbo+zookeeper微服務的一些認識記錄

奇數 配置文件 記錄 span 兩個 ice xxx 示意圖 zookeeper

借鑒架構示意圖:

技術分享圖片

實例介紹:

公司某項目架構

服務器A:nginx

服務器BC:tomcat1、tomcat2

服務器D:Dubbo+zookeeper

服務器EF:db1+zookeeper、db2+zookeeper

服務器D中某服務端項目模塊信息如下:

[root@xxx danny-service]# ls
bin  conf  lib  logs
[root@xxx danny-service]# ls conf/
dubbo.properties

dubbo.properties配置信息如下圖:

技術分享圖片

zookeeper配置文件如下:(3臺zk配置一樣,組成集群)

技術分享圖片

啟動服務後主從選舉如下:(選舉其中一臺為leader)

技術分享圖片

技術分享圖片

簡單概括

這是dubbo+zookeeper構建的微服務架構。(使用zookeeper作為dubbo的註冊中心)這是一個分布式項目,web層和service層被拆分開了,部署在不同的tomcat中。
因為這兩個運行在不同 tomcat下的服務無法直接互調接口,就通過微服務架構的方式實現。zookeeper服務(存儲service對象url),web端取對象,且server端存對象和web端取對象沒關系, 實現c/s 異步通信。 同時,在這個微服務架構裏面,為了保持註冊中心(zookeeper)的高可用性,分別在三臺服務器上部署了zookeeper,通過dubbo.service.loadbalance
=roundrobin算法選擇一臺作為leader ,其他作為follower,註冊中心的數據都以leader為準。一臺zk機器成為leader的條件是這臺機器是可用的,且被超過半數的機器(zookeeper)選舉為leader。基於這種實現方式,選擇zk集群的數量時最好為奇數個,
最少為3個,這樣只要有超過半數的zk機器存活那註冊中心就是可用的。

關於dubbo+zookeeper微服務的一些認識記錄