? ? ?最近一直在看倪超的那本《從paxos到Zookeeper分布式一致性原理與實踐》,整本書干貨滿滿。個人感覺在章節順序編排上有些小問題,不過,不影響它作為介紹這款中間件產品特性及原理而全面闡述的開山之作。總之,內容很多,我也只是了解了皮毛。接下來寫的種種,算是我喝了這碗雞湯,消化來剩下的。
? ? ?分布式系統定義:
? ? ? ? ? ? ? ? ? ? ? ? ? ? 是一個在硬件和軟件組件分布在不同在網絡計算機之間,彼此只是通過消息傳遞進行通信和協調的的系統。
? ? ?分布式系統特性:
? ? ? ? ? ? ? ? ? ? ? ? ? ? A ?機器多點分布
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?B 對等性,分布式系統沒有主從之分,所有的機器都是對等的。Replica(副本)是分布式系統的常見概念,主要包括數據與服務的冗余,具體是指在不同的節點上持久化同一份數據
? ? ? ? ? ? ? ? ? ? ? ? ? ? C 并發性,一個分布式系統中,可能會并發的操作并訪問一些共享的資源,儲如數據庫和分布式存儲。
? ? ? ? ? ? ? ? ? ? ? ? ? ? D 全局時鐘
? ? ? ? ? ? ? ? ? ? ? ? ? ? E 故障總會發生
? ?事務隔離級別:
? ? ? ? ? ? ? ? ? ? ? ? ? A 讀未提交
? ? ? ? ? ? ? ? ? ? ? ? ? B 讀已提交
? ? ? ? ? ? ? ? ? ? ? ? ? C 可重復讀
? ? ? ? ? ? ? ? ? ? ? ? ? D 串行
例子來說明:
隔離級別對比:
總結:事務隔離級別越高,性能越差。推薦讀已提交,然后通過程序利用樂觀鎖或者悲觀鎖來做。
? ? 分布式事務理論:
? ? ? ? ? ? ?CAP:
? ? ? ? 理論應用:
? ? ?BASE:基本可用,弱狀態,最終一致性
? ? 一致性理論:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ZAB,還沒有完全理解,后續添加
Zookeeper的應用場景:
? ? ? ? ? ? ? ? ? ? ? ? ? ?A 數據發布與訂閱,比如相關配置伯集中化管理
? ? ? ? ? ? ? ? ? ? ? ? ? ?B 負載均衡,動態DNS的運用
? ? ? ? ? ? ? ? ? ? ? ? ? ?C 命名服務,具體就是全局唯一標識的生成
? ? ? ? ? ? ? ? ? ? ? ? ? ?D 分布式協調、通知
? ? ? ? ? ? ? ? ? ? ? ? ? ?E 集群管理,如日志收集
? ? ? ? ? ? ? ? ? ? ? ? ? ?F Master選舉
? ? ? ? ? ? ? ? ? ? ? ? ? ?G 分布式鎖
? ? ? ? ? ? ? ? ? ? ? ? ? ? H 分布式隊列
Zookeeper客戶端:Curator,頂級apache項目, zookeeper的核心提交者對它的評價“guava is to Java what Curator is to ZooKeeper!”。下一篇帶來通過Curator操作Zookeeper的例子。