zookeeper概述圖文詳解
1.1 概述
分布式系統(tǒng):分布式系統(tǒng)指由很多臺計算機(jī)組成的一個整體!這個整體一致對外,并且處理同一請求!系統(tǒng)對內(nèi)透明,對外不透明!內(nèi)部的每臺計算機(jī),都可以相互通信,例如使用RPC/REST或者是WebService!客戶端向一個分布式系統(tǒng)發(fā)送的一次請求到接受到響應(yīng),有可能會經(jīng)歷多臺計算機(jī)!
Zookeeper是一個開源的分布式的,為分布式應(yīng)用提供協(xié)調(diào)服務(wù)的Apache項(xiàng)目,多用作為集群提供服務(wù)的中間件!
Zookeeper從設(shè)計模式角度來理解:是一個基于觀察者模式設(shè)計的分布式服務(wù)管理框架,它負(fù)責(zé)存儲和管理大家都關(guān)心的數(shù)據(jù),然后接受觀察者的注冊,一旦這些數(shù)據(jù)的狀態(tài)發(fā)生變化,Zookeeper就將負(fù)責(zé)通知已經(jīng)在Zookeeper上注冊的那些觀察者做出相應(yīng)的反應(yīng),從而實(shí)現(xiàn)集群中類似Master/Slave管理模式
Zookeeper=文件系統(tǒng)+通知機(jī)制
1.2 特點(diǎn)
1)一致性:zookeeper中的數(shù)據(jù)按照順序分批入庫,且最終一致!
2)原子性:一次數(shù)據(jù)更新要么成功,要么失敗。
3)單一視圖:全局?jǐn)?shù)據(jù)一致,每個server保存一份相同的數(shù)據(jù)副本,client無論連接到哪個server,數(shù)據(jù)都是一致的。
4)可靠性:每次對zk的操作狀態(tài)都會保存到服務(wù)端,每個server保存一份相同的數(shù)據(jù)副本。
5)更新請求順序進(jìn)行,來自同一個client的更新請求按其發(fā)送順序依次執(zhí)行。
6)實(shí)時性,在一定時間范圍內(nèi),client能讀到最新數(shù)據(jù)。
7)集群中只要有半數(shù)以上節(jié)點(diǎn)存活,Zookeeper集群就能正常服務(wù)(集群選擇奇數(shù)的原因)。
1.3 數(shù)據(jù)結(jié)構(gòu)
ZooKeeper數(shù)據(jù)模型的結(jié)構(gòu)與Unix文件系統(tǒng)很類似,整體上可以看作是一棵樹,每個節(jié)點(diǎn)稱做一個ZNode。每個Znode可以類似看作是一個目錄,其下可以創(chuàng)建子目錄。
很顯然zookeeper集群自身維護(hù)了一套數(shù)據(jù)結(jié)構(gòu)。這個存儲結(jié)構(gòu)是一個樹形結(jié)構(gòu),其上的每一個節(jié)點(diǎn),我們稱之為"znode",每一個znode默認(rèn)能夠存儲1MB的數(shù)據(jù),每個ZNode都可以通過其路徑唯一標(biāo)識
1.4 應(yīng)用場景
提供的服務(wù)包括:分布式消息同步和協(xié)調(diào)機(jī)制、服務(wù)器節(jié)點(diǎn)動態(tài)上下線、統(tǒng)一配置管理、負(fù)載均衡、集群管理等
統(tǒng)一命名服務(wù)
統(tǒng)一配置管理
統(tǒng)一集群管理
服務(wù)器動態(tài)上下線
軟負(fù)載均衡
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
Java 從網(wǎng)上下載文件的幾種方式實(shí)例代碼詳解
本文通過實(shí)例代碼給大家介紹了java從網(wǎng)上下載文件的幾種方式,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧2017-08-08使用IDEA和Gradle構(gòu)建Vertx項(xiàng)目(圖文步驟)
這篇文章主要介紹了使用IDEA和Gradle構(gòu)建Vertx項(xiàng)目(圖文步驟),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09springboot中設(shè)置定時任務(wù)的三種方法小結(jié)
在我們開發(fā)項(xiàng)目過程中,經(jīng)常需要定時任務(wù)來幫助我們來做一些內(nèi)容,本文介紹了springboot中設(shè)置定時任務(wù)的三種方法,主要包括@Scheduled注解,Quartz框架和xxl-job框架的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12Java拖曳鼠標(biāo)實(shí)現(xiàn)畫線功能的方法
這篇文章主要介紹了Java拖曳鼠標(biāo)實(shí)現(xiàn)畫線功能的方法,需要的朋友可以參考下2014-07-07Alibaba?Nacos配置中心動態(tài)感知原理示例解析
這篇文章主要介紹了Alibaba?Nacos配置中心動態(tài)感知原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08