国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ZooKeeper 概念與基礎

endless_road / 836人閱讀

摘要:由于分布式系統和應用可以提供更強的計算能力,還能更好地容災和擴展,所以逐漸受到青睞。基礎由若干條指令組成,用于完成特定功能的過程稱為原語。

信息飛速膨脹,很多應用無法依賴單個服務器處理龐大的數據量。由于分布式系統和應用可以提供更強的計算能力,還能更好地容災和擴展,所以逐漸受到青睞。

在開發分布式應用時,通常需要花費大量時間和精力來處理異構系統中的協作通信問題。

什么是 ZooKeeper

ZooKeeper 專注于任務協作,能為大型分布式系統提供可靠的協作處理能力,簡化開發流程,讓開發人員更專注于應用本身的邏輯。

ZooKeeper 具有 C-S 結構,在使用時,開發的應用可以看做為連接到 ZooKeeper 服務器的客戶端,通過客戶端 API 進行操作,保障強一致性、有序性和持久性,具有實現同步原語的能力,提供簡單的并發處理機制。常見的用法如:選舉主節點、崩潰檢測、存儲元數據等。

注意,ZooKeeper 不適用于海量信息存儲,設計應用時最好將應用數據與協同數據分開,使用數據庫、分布式文件系統等存儲應用數據。

ZooKeeper 基礎

由若干條指令組成,用于完成特定功能的過程稱為原語。

為了保證靈活性,ZooKeeper 不直接提供原語,而是暴露出類似文件系統的 API,讓開發人員通過 API 實現自己的原語,通常使用菜譜( recipes )來表示原語的實現。

ZooKeeper 操作和維護的為一個個數據節點,稱為 znode,采用類似文件系統的層級樹狀結構進行管理。如果 znode 節點包含數據則存儲為字節數組(byte array)。

API 概述

ZooKeeper 暴露如下 API:

create /path data 創建節點并包含數據

delete /path 刪除節點

exists /path 檢查節點是否存在

setData /path data 設置節點數據

getData /path 獲取節點數據

getChildren /path 獲取子節點列表

ZooKeeper 不允許局部讀取或寫入數據,讀取時會將節點數據全部讀取,寫入時會整個替換。

節點類型

創建 znode 時需要指定節點類型,節點的類型會影響其行為方式。

znode 分為持久節點和臨時節點。持久節點只有通過調用 delete API 才能刪除;臨時節點在客戶端崩潰或關閉與 ZooKeeper 服務器連接時就會被刪除,調用 delete API 也能刪除臨時節點。

znode 可設置為有序節點。有序節點在創建時會分配一個整數序號追加到路徑之后,如創建 /tasks/task- 有序節點,追加整數后節點路徑為 /tasks/task-1 。

綜上,znode 共有 4 種類型,分別為:持久(無序)、臨時(無序)、持久有序和臨時有序。

監聽通知

ZooKeeper 通常以遠程服務的方式被訪問,在數據不發生變化時頻繁地訪問代價較大,ZooKeeper 的通知機制可以代替客戶端的輪訓。

客戶端通過設置監視點(watcher)向 ZooKeeper 注冊需要接收通知的 znode,在 znode 發生變化時 ZooKeeper 向客戶端發送消息。

通知機制是單次觸發的操作,如需不斷監聽 znode 的變化,需要在接收到 znode 變更時設置新的監視點。

監視點有多種類型,如監控 znode 數據變化、監控 znode 子節點變化、監控 znode 創建或刪除。

版本匹配

每個 znode 都有一個隨數據變化而自增的版本號,多個寫入操作會有條件的執行。寫入操作會將版本號作為參數,當與服務器上版本號一致時才會調用成功,這點在多個客戶端對同一個 znode 進行操作時很重要。

仲裁模式

只有一臺多帶帶的 ZooKeeper 服務器時為獨立模式,狀態無法復制。具有一組 ZooKeeper 服務器時為仲裁模式,仲裁模式下各個服務器間進行狀態的復制,同時服務于客戶端的請求。

仲裁模式下,如果讓客戶端等待所有服務器完成數據保存再繼續,延遲問題就會很大,ZooKeeper 通過法定人數確定工作時必須有效運行的服務器最小數量。如果有 5 臺服務器,任意 3 臺服務器保存了數據,客戶端就可以繼續工作。其他 2 臺服務器最終也會捕獲到數據進行保存。

服務器的個數應該為奇數,如有 5 臺服務器,則最多允許 2 臺崩潰。假如服務器個數為偶數,允許崩潰的服務器數量不會增加,法定人數卻更大,需要更多的確認操作。

開始使用 ZooKeeper

開始使用 ZooKeeper 之前,需要 下載 ZooKeeper 發行包 。解壓 tar 格式的壓縮文件,bin 目錄下有啟動 ZooKeeper 的腳本,conf 目錄下存放著 ZooKeeper 的配置文件,lib 目錄下存放著一些運行所需的第三方文件。

啟動服務器

在 ZooKeeper 目錄下執行以下命令啟動 ZooKeeper 服務器。

$ bin/zkServer.sh start
啟動客戶端
$ bin/zkCli.sh
列出根節點下的所有節點
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
創建節點
[zk: localhost:2181(CONNECTED) 1] create /test ""
Created /test
[zk: localhost:2181(CONNECTED) 2] ls /
[zookeeper, test]
刪除節點
[zk: localhost:2181(CONNECTED) 3] delete /test
[zk: localhost:2181(CONNECTED) 4] ls /
[zookeeper]
退出客戶端
[zk: localhost:2181(CONNECTED) 5] quit
Quitting...
2018-05-02 15:58:34,004 [myid:] - INFO  [main:ZooKeeper@684] - Session: 0x1630a0cdc400001 closed
2018-05-02 15:58:34,006 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@519] - EventThread shut down for session: 0x1630a0cdc400001
關閉服務器
$ bin/zkServer.sh stop

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76520.html

相關文章

  • Zookeeper學習系列【一】 教會你Zookeeper的一些基礎概念

    摘要:具有不可分割性即原語的執行必須是連續的,在執行過程中不允許被中斷。提供服務主要就是通過數據結構原語集機制達到的。子節點的版本號數據節點版本號版本號創建該節點的會話的。后位則為遞增序列。 前言 最近加入了部門的技術興趣小組,被分配了Zookeeper的研究任務。在研究過程當中,發現Zookeeper由于其開源的特性和其卓越的性能特點,在業界使用廣泛,有很多的應用場景,而這些不同的應用場景...

    DevWiki 評論0 收藏0
  • 2018年第16周-ZooKeeper基本概念(配搭建過程和Master-Workers例子)

    摘要:有可能是宕機或負荷嚴重的情況導致的。為分布式系統提供了協調功能和控制沖突。 背景 隨著計算機的硬件和操作系統兩者相輔相成地發展,從早期的ENIAC計算機到現在的x86的計算機,從以前的單一控制終端(Single Operator, Single Console, SOSC)的操作系統到現在百花爭鳴的操作系統(如MacOS、Windows、Linux等),現代的操作系統發展還有一個最重要...

    wemall 評論0 收藏0
  • 可能是全網把 ZooKeeper 概念講的最清楚的一篇文章

    摘要:的設計目標是將那些復雜且容易出錯的分布式一致性服務封裝起來,構成一個高效可靠的原語集,并以一系列簡單易用的接口提供給用戶使用。具有不可分割性即原語的執行必須是連續的,在執行過程中不允許被中斷。 該文已加入開源文檔:JavaGuide(一份涵蓋大部分Java程序員所需要掌握的核心知識)。地址:https://github.com/Snailclimb... showImg(https:...

    DrizzleX 評論0 收藏0
  • 快速了解zookeeper

    摘要:之后服務器等待其他服務器的反饋,一旦超過半數的服務器進行了正確的反饋,那么就會再次向所有的服務器分發消息,要求其將前一個進行提交。協議包括兩種基本的模式,分別是崩潰恢復和消息廣播。 前言 zookeeper本質上就是一個分布式協調服務,用來解決分布式一致性的問題。 本文適合有一定分布式基礎的讀者閱讀。什么叫相關的基礎呢?起碼你得知道系統架構為何從集中式演變成了分布式,分布式有哪些優點...

    imccl 評論0 收藏0
  • Zookeeper學習系列【三】Zookeeper 集群架構、讀寫機制以及一致性原理(ZAB協議)

    摘要:協議是為分布式協調服務專門設計的一種支持崩潰恢復的一致性協議,這個機制保證了各個之間的同步。選主是協議中最為重要和復雜的過程。以實際效果而言,分區相當于對通信的時限要求。參考官方文檔阿里巴巴為什么不用做服務發現定理的含義阮一峰 前言 同學們,在上一章中,我們主要講了Zookeeper兩種啟動模式以及具體如何搭建。本章內容主要講的是集群相關的原理內容,第一章可以當做是Zookeeper原...

    Olivia 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<