亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Zookeeper相關內容及簡單理解、安裝

發布時間:2020-06-22 13:05:35 來源:網絡 閱讀:655 作者:柴絲言 欄目:建站服務器

一、什么是Zookeeper

Zookeeper是一個開源的分布式服務框架,它是Apache hadoop項目的一個子項目,主要用來解決分布式應用場景中存在的一些問題,如:統一命名服務、狀態同步服務、集群管理、分布式應用配置管理等。在分布式模式下,能夠為分布式應用提供高性能和可靠地協調服務,使用Zookeeper可以簡化分布式協調服務的實現。

Zookeeper提供的功能包括:配置維護、域名服務、分布式同步、組服務等。

具體可見這個博客:http://blog.csdn.net/liuyuehu/article/details/52120546

和 http://blog.csdn.net/u012152619/article/details/52908878





二、Zookeeper一般用在什么場合?

數據發布與訂閱(配置中心):

發布與訂閱,是發布者將數據發布到zk節點上,工訂閱者動態獲取數據,實現配置信息的集中式管理和動態更新。例如全局的配置信息,服務式服務框架的服務地址。

(1)應用中用到的一些配置信息放到ZK上進行集中管理。通常是:應用在啟動時會主動來獲取一次配置,在節點上注冊一個Watcher,以后每次配置有更新時,都會實時通知給訂閱了的哭護短,從而達到獲取最新配置信息的目的。

(2)分布式搜索服務器中,索引的云信息和服務器集群機器的節點狀態存放ZK的一些指定節點,供各個客戶端訂閱使用


負載均衡

這里說的負載均衡是指軟負載均衡。在分布式環境中,為了保證高可用性,通常同一個應用或同一服務的提供方都會部署多份,達到對等服務。而消費者就需要在這些對等服務的服務器中選擇一個來執行相關的業務邏輯,其中比較典型的是消息中間件中生產者/消費者負載均衡。

消息中間件發布者和訂閱者的負載均衡,linkedin開源的KafkaMQ和阿里開源的metaq都是通過zookeeper來做到生產者、消費者的負載均衡。這里以metaq為例講下:

生產者負載均衡/消費者負載均衡:

metaq發送消息的時候,生產者在發送消息的時候必須選擇一臺broker上的一個分區來發送消息,因此metaq在運行過程中,會把所有broker和對應的分區信息全部注冊到ZK指定節點上,默認的策略是一個依次輪詢的過程,生產者在通過ZK獲取分區列表之后,會按照brokerId和partition的順序排列組織成一個有序的分區列表,發送的時候按照從頭到尾循環往復的方式選擇一個分區來發送消息。

在消費過程中,一個消費者會消費一個或多個分區中的消息,但是一個分區只會由一個消費者來消費。MetaQ的消費策略是:

  • 每個分區針對同一個group只掛載一個消費者。

  • 如果同一個group的消費者數目大于分區數目,則多出來的消費者將不參與消費。

  • 如果同一個group的消費者數目小于分區數目,則有部分消費者需要額外承擔消費任務。

在某個消費者故障或者重啟等情況下,其他消費者會感知到這一變化(通過 zookeeper watch消費者列表),然后重新進行負載均衡,保證所有的分區都有消費者進行消費。

(3)命名服務(Naming Service)

命名服務也是分布式系統中比較常見的一類場景。在分布式系統中,通過使用命名服務,客戶端應用能夠根據指定名字來獲取資源或者服務的地址,提供者等信息。被命名實體通常可以是集群中的機器,提供的服務地址,遠程對象等等——這些我們都可以統稱為他們的名字(Name)。其中較為常見的就是一些分布式服務框架中的服務地址列表。通過調用ZK提供的創建節點的API,能夠很容易創建一個全局唯一的path,這個path就可以作為一個名稱。

Dubbo中使用zookeeper來作為命名服務,維護全局的服務地址列表。

在Dubbo(下一個話題講)中:

服務提供者在啟動的時候,向ZK上的指定節點/dubbo/${serviceName}/providers目錄下寫入自己的URL地址,這個操作就完成了服務的發布。

服務消費者啟動的時候,訂閱/dubbo/${serviceName}/providers目錄下的提供者URL地址,并向/dubbo/${serviceName}/consumers目錄下寫入自己的URL地址。

向ZK上注冊的地址都是臨時節點,這樣就能夠保證服務提供者和消費者能自動感應資源的變化。

(4)分布式通知/協調

Zookeeper中持有watcher注冊與異步通知機制,能夠很好的實現分布式環境下不同系統之間的通知與協調,實現對數據變更的實時處理。使用方法通常是不同系統都對ZK上同一個znode進行注冊,監聽znode的變化(包括znode本身內容及其子節點),其中一個系統更新了znode,那么另一個系統能夠收到通知,并做出相應處理。(http://www.cnblogs.com/tommyli/p/3766189.html)


(5)集群管理與Master選舉:

集群機器監控:通常用于對集群中機器狀態有較高的要求的場景,能夠快速對集群中機器變化做出響應。


(6)分布式鎖

分布式鎖,這個主要得益于ZooKeeper為我們保證了數據的強一致性。鎖服務可以分為兩類,一個是保持獨占,另一個是控制時序

(7)分布式隊列

隊列方面,簡單地講有兩種,一種是常規的先進先出隊列,另一種是要等到隊列成員聚齊之后的才統一按序執行。

第二種隊列其實是在FIFO隊列的基礎上作了一個增強。通常可以在 /queue 這個znode下預先建立一個/queue/num 節點,并且賦值為n(或者直接給/queue賦值n),表示隊列大小,之后每次有隊列成員加入后,就判斷下是否已經到達隊列大小,決定是否可以開始執行了。這種用法的典型場景是,分布式環境中,一個大任務Task A,需要在很多子任務完成(或條件就緒)情況下才能進行。這個時候,凡是其中一個子任務完成(就緒),那么就去 /taskList 下建立自己的臨時時序節點(CreateMode.EPHEMERAL_SEQUENTIAL),當 /taskList 發現自己下面的子節點滿足指定個數,就可以進行下一步按序進行處理了。







三、windows中下載、安裝Zookeeper,啟動:

(1)下載在搜索框輸入Zookeeper進入官網即可。下載的是zip包,解壓如下:

Zookeeper相關內容及簡單理解、安裝

(2)bin目錄如下:

Zookeeper相關內容及簡單理解、安裝

(3)打開控制臺窗口,并轉到bin目錄下:

Zookeeper相關內容及簡單理解、安裝

運行zkServer.cmd:

注意此時如果啟動失敗,意外關閉,并提示zoo.conf找不到,那么zoo_sample.conf也是可以的,不過要實現對改文件進行部分修改,換成你自己的參數。如圖:

Zookeeper相關內容及簡單理解、安裝

Zookeeper啟動之后會顯示如下信息,如圖:

Zookeeper相關內容及簡單理解、安裝

最后幾行是這樣的:表示啟動成功,

Zookeeper相關內容及簡單理解、安裝

(4)啟動客戶端運行查看一下:

Zookeeper相關內容及簡單理解、安裝

Zookeeper相關內容及簡單理解、安裝

表示客戶端已經順利連接,Zookeeper啟動成功!


//可以參考這篇博文:http://blog.csdn.net/morning99/article/details/40426133



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

剑河县| 阜宁县| 眉山市| 临海市| 东港市| 东安县| 广平县| 囊谦县| 璧山县| 临沧市| 兴文县| 广汉市| 东丰县| 平安县| 长葛市| 宜黄县| 迁西县| 治县。| 丰台区| 蒲江县| 南江县| 滦南县| 洛川县| 花莲县| 双辽市| 吴旗县| 宁南县| 阳春市| 舞钢市| 泗洪县| 乐都县| 钦州市| 衡水市| 思茅市| 孝义市| 专栏| 小金县| 长垣县| 巴马| 含山县| 汉源县|