zookeeper概述圖文詳解
1.1 概述
分布式系統(tǒng):分布式系統(tǒng)指由很多臺計算機組成的一個整體!這個整體一致對外,并且處理同一請求!系統(tǒng)對內透明,對外不透明!內部的每臺計算機,都可以相互通信,例如使用RPC/REST或者是WebService!客戶端向一個分布式系統(tǒng)發(fā)送的一次請求到接受到響應,有可能會經(jīng)歷多臺計算機!
Zookeeper是一個開源的分布式的,為分布式應用提供協(xié)調服務的Apache項目,多用作為集群提供服務的中間件!
Zookeeper從設計模式角度來理解:是一個基于觀察者模式設計的分布式服務管理框架,它負責存儲和管理大家都關心的數(shù)據(jù),然后接受觀察者的注冊,一旦這些數(shù)據(jù)的狀態(tài)發(fā)生變化,Zookeeper就將負責通知已經(jīng)在Zookeeper上注冊的那些觀察者做出相應的反應,從而實現(xiàn)集群中類似Master/Slave管理模式
Zookeeper=文件系統(tǒng)+通知機制
1.2 特點
1)一致性:zookeeper中的數(shù)據(jù)按照順序分批入庫,且最終一致!
2)原子性:一次數(shù)據(jù)更新要么成功,要么失敗。
3)單一視圖:全局數(shù)據(jù)一致,每個server保存一份相同的數(shù)據(jù)副本,client無論連接到哪個server,數(shù)據(jù)都是一致的。
4)可靠性:每次對zk的操作狀態(tài)都會保存到服務端,每個server保存一份相同的數(shù)據(jù)副本。
5)更新請求順序進行,來自同一個client的更新請求按其發(fā)送順序依次執(zhí)行。
6)實時性,在一定時間范圍內,client能讀到最新數(shù)據(jù)。
7)集群中只要有半數(shù)以上節(jié)點存活,Zookeeper集群就能正常服務(集群選擇奇數(shù)的原因)。
1.3 數(shù)據(jù)結構
ZooKeeper數(shù)據(jù)模型的結構與Unix文件系統(tǒng)很類似,整體上可以看作是一棵樹,每個節(jié)點稱做一個ZNode。每個Znode可以類似看作是一個目錄,其下可以創(chuàng)建子目錄。
很顯然zookeeper集群自身維護了一套數(shù)據(jù)結構。這個存儲結構是一個樹形結構,其上的每一個節(jié)點,我們稱之為"znode",每一個znode默認能夠存儲1MB的數(shù)據(jù),每個ZNode都可以通過其路徑唯一標識

1.4 應用場景
提供的服務包括:分布式消息同步和協(xié)調機制、服務器節(jié)點動態(tài)上下線、統(tǒng)一配置管理、負載均衡、集群管理等
統(tǒng)一命名服務

統(tǒng)一配置管理

統(tǒng)一集群管理

服務器動態(tài)上下線

軟負載均衡

總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接
相關文章
SpringBoot整合ElasticSearch的示例代碼
本篇文章主要介紹了SpringBoot整合ElasticSearch的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09
Java并發(fā)系列之AbstractQueuedSynchronizer源碼分析(共享模式)
這篇文章主要為大家詳細介紹了Java并發(fā)系列之AbstractQueuedSynchronizer源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
Spring Cloud Stream整合RocketMQ的搭建方法
本文介紹了如何使用SpringCloudStream整合RocketMQ進行消息傳遞,SpringCloudStream是一個用于構建與共享消息系統(tǒng)連接的框架,支持持久pub/sub語義和消費者組,感興趣的朋友跟隨小編一起看看吧2024-11-11
圖數(shù)據(jù)庫NebulaGraph的Java 數(shù)據(jù)解析實踐與指導詳解
這篇文章主要介紹了圖數(shù)據(jù)庫NebulaGraph的Java 數(shù)據(jù)解析實踐與指導詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04
Spring?Boot如何在加載bean時優(yōu)先選擇我
這篇文章主要介紹了Spring?Boot如何在加載bean時優(yōu)先選擇我,在?Spring?Boot?應用程序中,我們可以采取三種方式實現(xiàn)自己的?bean?優(yōu)先加載,本文通過實例代碼給大家詳細講解,需要的朋友可以參考下2023-03-03

