為什么使用zookeeper
zookeeper 作為一個分布式的服務框架,主要用來解決分布式集群中應用系統的一致性問題,它能提供基于類似于文件系統的目錄節點樹方式的數據存儲, zookeeper 作用主要是用來維護和監控存儲的數據的狀態變化,通過監控這些數據狀態的變化,從而達到基于數據的集群管理。
zookeeper 核心
zookeeper的數據模型是樹結構,在內存數據庫中,存儲了整棵樹的內容,包括所有的節點路徑、節點數據、acl信息,zookeeper會定時將這個數據存儲到磁盤上。
zookeeper節點特點
持久節點
即使在創建該特定znode的客戶端斷開連接后,持久節點仍然存在。默認情況下,除非另有說明,否則所有znode都是持久的。
臨時節點
客戶端活躍時,臨時節點就是有效的。當客戶端與zookeeper集合斷開連接時,臨時節點會自動刪除。因此,只有臨時節點不允許有子節點。如果臨時節點被刪除,則下一個合適的節點將填充其位置。臨時節點在leader選舉中起著重要作用。
順序節點
順序節點可以是持久的或臨時的。當一個新的znode被創建為一個順序節點時,zookeeper通過將10位的序列號附加到原始名稱來設置znode的路徑。例如,如果將具有路徑 /myapp 的znode創建為順序節點,則zookeeper會將路徑更改為 /myapp0000000001 ,并將下一個序列號設置為0000000002。如果兩個順序節點是同時創建的,那么zookeeper不會對每個znode使用相同的數字。順序節點在鎖定和同步中起重要作用
curator
curator是netflix公司開源的一個zookeeper客戶端,與zookeeper提供的原生客戶端相比,curator的抽象層次更高,簡化了zookeeper客戶端編程。
spring-cloud-starter-zookeeper-config
1
2
3
4
|
<dependency> <groupid>org.springframework.cloud</groupid> <artifactid>spring-cloud-starter-zookeeper-config</artifactid> </dependency> |
bootstrap.yml
1
2
3
4
5
|
spring: cloud: zookeeper: connect-string: 192.168 . 3.98 : 2181 enabled: true |
注入curatorframework
1
2
|
@autowired private curatorframework curatorframework; |
詳見官方文檔 http://curator.apache.org/index.html
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://my.oschina.net/penghaozhong/blog/1799892