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