關於dubbo+zookeeper微服務的一些認識記錄
阿新 • • 發佈:2019-03-11
奇數 配置文件 記錄 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微服務的一些認識記錄