寫在前面:web
再談架構演進:apache
1.單體架構->tomcat(war)tomcat
演進:水平拆分(服務拆分,(用戶服務,訂單服務,商品服務))數據結構
涉及問題:1).服務通訊(webservice)架構
2).三態問題(成功、失敗,超時等)負載均衡
垂直拆分(集羣)分佈式
涉及問題:1).地址維護server
2).負載均衡機制
3).服務上下線感知(感知服務節點是否宕機 )中間件
2.分佈式架構blog
爲了解決上述演進過程的各類問題,提供一箇中間件,也就是咱們的豬腳Zookeeper
1、什麼是Zookeeper
1.歷史:
起源於雅虎,爲了解決共享資源鎖競爭的問題,實現一個分佈式鎖,是一個分佈式協調服務,協調服務的一個順序性。
2.數據結構:
2.1樹形目錄結構,基於Key-Value的存儲,能夠做爲註冊中心來使用,每個節點上註冊一個服務。會有順序性。
2.2節點特性:
同級節點惟一性、臨時節點(在客戶端創建的會話週期中,建立的的臨時節點,會話結束後會自動刪除)和持久化節點、有序節點和無序節點、臨時節點下不能存在節點
3.部署方式
爲了高可用,ZK通常採用集羣部署,一主兩從。而這裏就產生了數據同步的問題。就CAP理論而言,zk採用了2pc的分佈式事務解決方案以保證最終一致性。
2、zookeeper的安裝部署
1.安裝部署
1.1下載安裝包:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/ 說明:下載3.5.5在啓動時老是遇到以下問題
1.2解壓zookeeper tar -zxvf zookeeper-3.4.14.tar.gz
1.3 拷貝一份配置文件 cp zoo_sample.cfg zoo.cfg (zk默認使用zoo.cfg配置文件)
1.4 啓動服務端 sh zkServer.sh start
1.5 啓動客戶端 sh zkCli.sh -server localhost:2182
2.基本操做
help
create/delete/
3、zoo.fcg配置文件分析