[ ZooKeeper]ZooKeeper 的功能和原理
Zookeeper功能簡介:
ZooKeeper 是一個開源的分布式協調服務,由雅虎創建,是 Google Chubby 的開源實現。分布式應用程序可以基于 ZooKeeper 實現諸如數據發布/訂閱、負載均衡、命名服務、分布式協調/通知、集群管理、Master 選舉、配置維護,名字服務、分布式同步、分布式鎖和分布式隊列等功能。
?
?ZooKeeper幾個核心概念
集群角色:
一個 ZooKeeper 集群同一時刻只會有一個 Leader,其他都是 Follower 或 Observer。
ZooKeeper 配置很簡單,每個節點的配置文件(zoo.cfg)都是一樣的,只有 myid 文件不一樣。myid 的值必須是 zoo.cfg中server.{數值} 的{數值}部分。
在裝有 ZooKeeper 的機器的終端執行 zookeeper-server status 可以看當前節點的 ZooKeeper是什么角色(Leader or Follower)。
1.ZooKeeper 集群的所有機器通過一個 Leader 選舉過程來選定一臺被稱為『Leader』的機器,Leader服務器為客戶端提供讀和寫服務。
2.Follower 和 Observer 都能提供讀服務,不能提供寫服務。兩者唯一的區別在于,Observer機器不參與 Leader 選舉過程,也不參與寫操作的『過半寫成功』策略,因此 Observer 可以在不影響寫性能的情況下提升集群的讀性能。
節點讀寫服務分工
1.ZooKeeper 集群的所有機器通過一個 Leader 選舉過程來選定一臺被稱為『Leader』的機器,Leader服務器為客戶端提供讀和寫服務。
2.Follower 和 Observer 都能提供讀服務,不能提供寫服務。兩者唯一的區別在于,Observer機器不參與 Leader 選舉過程,也不參與寫操作的『過半寫成功』策略,因此 Observer 可以在不影響寫性能的情況下提升集群的讀性能
Session
Session 是指客戶端會話,在講解客戶端會話之前,我們先來了解下客戶端連接。在ZooKeeper 中,一個客戶端連接是指客戶端和 ZooKeeper 服務器之間的TCP長連接。
ZooKeeper 對外的服務端口默認是2181,客戶端啟動時,首先會與服務器建立一個TCP連接,從第一次連接建立開始,客戶端會話的生命周期也開始了,通過這個連接,客戶端能夠通過心跳檢測和服務器保持有效的會話,也能夠向 ZooKeeper 服務器發送請求并接受響應,同時還能通過該連接接收來自服務器的 Watch 事件通知。
Session 的 SessionTimeout 值用來設置一個客戶端會話的超時時間。當由于服務器壓力太大、網絡故障或是客戶端主動斷開連接等各種原因導致客戶端連接斷開時,只要在 SessionTimeout 規定的時間內能夠重新連接上集群中任意一臺服務器,那么之前創建的會話仍然有效
?
?
?
轉載于:https://www.cnblogs.com/szss/p/9929539.html
總結
以上是生活随笔為你收集整理的[ ZooKeeper]ZooKeeper 的功能和原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL5.0安装图解
- 下一篇: 微信支付退款结果通知解密 base64_