Java面試題目,java工程師成神之路

2. ZooKeeper 介紹

2.1. ZooKeeper 由來

正式介紹 ZooKeeper 之前,我們先來看看 ZooKeeper 的由來,還挺有意思的。

下面這段內容摘自《從 Paxos 到 ZooKeeper 》第四章第一節,推薦大家閱讀一下:

ZooKeeper 最早起源于雅虎研究院的一個研究小組。在當時,研究人員發現,在雅虎內部很多大型系統基本都需要依賴一個類似的系統來進行分布式協調,但是這些系統往往都存在分布式單點問題。所以,雅虎的開發人員就試圖開發一個通用的無單點問題的分布式協調框架,以便讓開發人員將精力集中在處理業務邏輯上。

關于“ZooKeeper”這個項目的名字,其實也有一段趣聞。在立項初期,考慮到之前內部很多項目都是使用動物的名字來命名的(例如著名的 Pig 項目),雅虎的工程師希望給這個項目也取一個動物的名字。時任研究院的首席科學家 RaghuRamakrishnan 開玩笑地說:“在這樣下去,我們這兒就變成動物園了!”此話一出,大家紛紛表示就叫動物園管理員吧一一一因為各個以動物命名的分布式組件放在一起,雅虎的整個分布式系統看上去就像一個大型的動物園了,而 ZooKeeper 正好要用來進行分布式環境的協調一一于是,ZooKeeper 的名字也就由此誕生了。

2.2. ZooKeeper 概覽

ZooKeeper 是一個開源的分布式協調服務,它的設計目標是將那些復雜且容易出錯的分布式一致性服務封裝起來,構成一個高效可靠的原語集,并以一系列簡單易用的接口提供給用戶使用。

原語: 操作系統或計算機網絡用語范疇。是由若干條指令組成的,用于完成一定功能的一個過程。具有不可分割性·即原語的執行必須是連續的,在執行過程中不允許被中斷。

ZooKeeper 為我們提供了高可用、高性能、穩定的分布式數據一致性解決方案,通常被用于實現諸如數據發布/訂閱、負載均衡、命名服務、分布式協調/通知、集群管理、Master 選舉、分布式鎖和分布式隊列等功能。

另外,ZooKeeper 將數據保存在內存中,性能是非常棒的。 在“讀”多于“寫”的應用程序中尤其地高性能,因為“寫”會導致所有的服務器間同步狀態。(“讀”多于“寫”是協調服務的典型場景)。

2.3. ZooKeeper 特點

  • 順序一致性: 從同一客戶端發起的事務請求,最終將會嚴格地按照順序被應用到 ZooKeeper 中去。
  • 原子性: 所有事務請求的處理結果在整個集群中所有機器上的應用情況是一致的,也就是說,要么整個集群中所有的機器都成功應用了某一個事務,要么都沒有應用。
  • 單一系統映像 : 無論客戶端連到哪一個 ZooKeeper 服務器上,其看到的服務端數據模型都是一致的。
  • 可靠性: 一旦一次更改請求被應用,更改的結果就會被持久化,直到被下一次更改覆蓋。

2.4. ZooKeeper 典型應用場景

ZooKeeper 概覽中,我們介紹到使用其通常被用于實現諸如數據發布/訂閱、負載均衡、命名服務、分布式協調/通知、集群管理、Master 選舉、分布式鎖和分布式隊列等功能。

下面選 3 個典型的應用場景來專門說說:

  1. 分布式鎖 : 通過創建唯一節點獲得分布式鎖,當獲得鎖的一方執行完相關代碼或者是掛掉之后就釋放鎖。
  2. 命名服務 :可以通過 ZooKeeper 的順序節點生成全局唯一 ID
  3. 數據發布/訂閱 :通過 Watcher 機制 可以很方便地實現數據發布/訂閱。當你將數據發布到 ZooKeeper 被監聽的節點上,其他機器可通過監聽 ZooKeeper 上節點的變化來實現配置的動態更新。

實際上,這些功能的實現基本都得益于 ZooKeeper 可以保存數據的功能,但是 ZooKeeper 不適合保存大量數據,這一點需要注意。

2.5. 有哪些著名的開源項目用到了 ZooKeeper?

  1. Kafka : ZooKeeper 主要為 Kafka 提供 Broker 和 Topic 的注冊以及多個 Partition 的負載均衡等功能。
  2. Hbase : ZooKeeper 為 Hbase 提供確保整個集群只有一個 Master 以及保存和提供 regionserver 狀態信息(是否在線)等功能。
  3. Hadoop : ZooKeeper 為 Namenode 提供高可用支持。

3. ZooKeeper 重要概念解讀

破音:拿出小本本,下面的內容非常重要哦!

3.1. Data model(數據模型)

ZooKeeper 數據模型采用層次化的多叉樹形結構,每個節點上都可以存儲數據,這些數據可以是數字、字符串或者是二級制序列。并且。每個節點還可以擁有 N 個子節點,最上層是根節點以“/”來代表。每個數據節點在 ZooKeeper 中被稱為 znode,它是 ZooKeeper 中數據的最小單元。并且,每個 znode 都一個唯一的路徑標識。

強調一句:ZooKeeper 主要是用來協調服務的,而不是用來存儲業務數據的,所以不要放比較大的數據在 znode 上,ZooKeeper 給出的上限是每個結點的數據大小最大是 1M。

從下圖可以更直觀地看出:ZooKeeper 節點路徑標識方式和 Unix 文件系統路徑非常相似,都是由一系列使用斜杠"/"進行分割的路徑表示,開發人員可以向這個節點中寫人數據,也可以在節點下面創建子節點。這些操作我們后面都會介紹到。

ZooKeeper 數據模型

3.2. znode(數據節點)

介紹了 ZooKeeper 樹形數據模型之后,我們知道每個數據節點在 ZooKeeper 中被稱為 znode,它是 ZooKeeper 中數據的最小單元。你要存放的數據就放在上面,是你使用 ZooKeeper 過程中經常需要接觸到的一個概念。

3.2.1. znode 4種類型

我們通常是將 znode 分為 4 大類:

  • 持久(PERSISTENT)節點 :一旦創建就一直存在即使 ZooKeeper 集群宕機,直到將其刪除。
  • 臨時(EPHEMERAL)節點 :臨時節點的生命周期是與 客戶端會話(session) 綁定的,會話消失則節點消失 。并且,臨時節點只能做葉子節點 ,不能創建子節點。
  • 持久順序(PERSISTENT_SEQUENTIAL)節點 :除了具有持久(PERSISTENT)節點的特性之外, 子節點的名稱還具有順序性。比如 /node1/app0000000001/node1/app0000000002
  • 臨時順序(EPHEMERAL_SEQUENTIAL)節點 :除了具備臨時(EPHEMERAL)節點的特性之外,子節點的名稱還具有順序性。

3.2.2. znode 數據結構

每個 znode 由 2 部分組成:

  • stat :狀態信息
  • data : 節點存放的數據的具體內容

總結

本文從基礎到高級再到實戰,由淺入深,把MySQL講的清清楚楚,明明白白,這應該是我目前為止看到過最好的有關MySQL的學習筆記了,我相信如果你把這份筆記認真看完后,無論是工作中碰到的問題還是被面試官問到的問題都能迎刃而解!

重要的事:需要領取完整版的MySQL學習筆記的話,請轉發+關注后點這里免費獲取到免費的下載方式!

MySQL50道高頻面試題整理:

注后點這里免費獲取到免費的下載方式!**

MySQL50道高頻面試題整理:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385746.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385746.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385746.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

音樂計算機融合課,融合信息技術的音樂課

上一節共讀,陳蕾老師帶我們學習了雷圣峰老師如何在一堂以“生活中的青花紋飾”為主題的美術課上搭建教學腳手架并展現了信息技術與美術學科的融合。一直以來,很多教師認為像美術、音樂這樣的藝術學科在融合信息技術上是有一些困難的,上一節共…

Java面試題目,極客時間免費課程

一、對Kafka的認識 1.Kafka的基本概念 2.安裝與配置 3.生產與消費 4.服務端參數配置 二、生產者 1.客戶端開發 2.原理分析 3.重要的生產者參數 三、消費者 1.消費者與消費組 2.客戶端開發 四、主題與分區 1.主題的管理 2.初識KafkaAdminCilent 3.分區的管理 4.如何…

w7重啟計算機打印機無法使用,win7系統電腦重啟打印機服務就會被關閉的解決方法...

很多小伙伴都遇到過win7系統電腦重啟打印機服務就會被關閉的困惑吧,一些朋友看過網上零散的win7系統電腦重啟打印機服務就會被關閉的處理方法,并沒有完完全全明白win7系統電腦重啟打印機服務就會被關閉是如何解決的,今天小編準備了簡單的解決…

Java面試題!centos安裝yum

技術焦慮 現在的技術圈子很火熱,任何技術點,任何知識,只要你肯搜索,都能找到資料。但是現在技術圈確實有一個不好的地方,就是販賣焦慮。這種販賣焦慮的點并不在于形式,而是一種普遍的心態。特別是對于那種…

2016年全國計算機技術與軟件,2016年的上半年的全國計算機技術與軟件專業技術資格(水平)考.doc...

2016年的上半年的全國計算機技術與軟件專業技術資格(水平)考.doc (1頁)本資源提供全文預覽,點擊全文預覽即可全文預覽,如果喜歡文檔就下載吧,查找使用更方便哦!19.90 積分2011年上半年全國計算機技術與軟件專業技術資格(水平)考試…

Java面試題!java面向對象程序設計答案

一、對Kafka的認識 1.Kafka的基本概念 2.安裝與配置 3.生產與消費 4.服務端參數配置 二、生產者 1.客戶端開發 必要的參數配置消息的發送序列化分區器生產者攔截器 2.原理分析 整體架構元數據的更新 3.重要的生產者參數 三、消費者 1.消費者與消費組 2.客戶端開發 必要的…

測試學生成績的軟件,《軟件測試-學生成績管理系統》.doc

宿遷學院軟件測試—學生成績管理系統姓名: *****班級:計算機(3)班學號:******系部: 三 系指導老師:*****成績:目錄目錄21引言31.1開發系統目標31.2開發系統背景31.3用戶需求31.4系統組成32功能要求42.1系統…

Java面試題,java培訓北京哪家好

一、公務員都不要35歲以上的,何況大公司 這讓很多人感到惶恐,現在職場上有一種現象:很多用人單位會在招聘信息上明確標注,年齡需在35歲以下。為什么有經驗、有人脈的職場中年人會如此遭“嫌棄”呢? 首先,…

計算機輔助外文文獻,計算機輔助夾具設計外文文獻.pdf

Computer-Aided Design 42 (2010) 1085–1094Contents lists available at ScienceDirectComputer-Aided Designjournal homepage: /locate/cadComputer aided fixture design: Recent research and trendsHui Wang a,?, Yiming (Kevin) Rong a,b , Hua Li b , Price Shaun ba…

Java面試題,java工程師求職簡歷

One:JVM實踐思維圖(完整版) Two: 走近Java 概述 Java技術體系Java發展史Java虛擬機家族:(Sun Classic/Exact VM、HotSpot VM、Mobile/Embedded VM、BEA JRockit/IBM J9 VM、BEA Liquid VM/Azul VM、Apache…

配電柜測試軟件,低壓配電柜測試方法及流程.docx

PAGE \* MERGEFORMAT6Newtech MS-E-01-SAT-Rev0018.0 測試記錄表格:安裝檢查設備編號: 參考圖紙:序號項目結果備注1安裝位置是否與設計圖紙一致合格 不合格2配電柜外觀是否完好合格 不合格3電纜進線口及出線口是否加絕緣防護合格 不合格4進線…

java高分面試指南:javamvc模式簡單案例

Spring面試高頻問題 SpringMVC面試高頻問題 MyBatis面試高頻問題 SpringBoot面試高頻題 SpringCloud面試高頻問題 Redis高級面試題 Dubbo高頻常問面試問題 Java虛擬機(JVM) MySQL數據庫高頻面試問題 Java高頻面試專題合集解析: 當然在這還有更…

智能不屬于計算機理論,討論:計算機如何能提出自己的理論

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓作者: 沒事少抽煙 2006-8-28 13:201、如何定義“AI自己的理論”這個命題?AI是簡單的輸出幾個單詞還是提出具體的理論體系?----------------------------------------------------------------現在…

java高分面試指南:java單例模式雙重檢查

1. CAP 的由來 要理解 CAP,首先我們要清楚,為何會有人提出 CAP?他提出 CAP 是為了解決什么問題? 時間回到 1985 年,彼時,后來證明了 CAP 理論的 Lynch 教授此時給當時的 IT 界來了一記驚雷: …

win10計算機磁盤圖標,Win10 21H1怎么更換電腦磁盤的圖標標識

導語:每臺win10電腦的磁盤圖標都是一樣的,有什么辦法可以修改硬盤圖標呢?為了讓我們的電腦更具個性化,小編給大家分享下Win10 21H1怎么更換電腦磁盤的圖標標識。方法如下:手動配置.inf文件1、首先,將要設置為驅動器圖標的圖標文件(ico格式)復…

服務器重裝 pe,WinPE 下安裝 Windows Server 2003 服務器

一.準備和資源需求1.U盤,內置WinPE 啟動 。2.Windows Server 2003 操作系統的 iso 文件。3.Windows Server 2003 操作系統的正常文件(iso中提取的文件和文件夾)二.安裝流程1. u盤 啟動 運行 WinPE2. 進入 WinPE系統,把 Windows Server 2003 操作系統的is…

java高分面試指南:java定時刪除文件

本文框架如下 第一部分,主要是在閱讀代碼過程中的日志和筆記; 第二部分,主要介紹了 Redis 的主要框架,以及 Redis 是如何提供服務的,從一個最簡單的命令開始講起; 第三部分,主要介紹 Redis 底…

apk獲取服務器時間文件名,如何根據APK文件獲取應用程序簽名時間

至少有三種方法可以獲得像簽名時間這樣的東西。有第一種是使用keytool:$ keytool -printcert -jarfile sample.apkSigner #1:Signature:Owner: CNGService inc, OUG Service inc, OG, LNew York, STNew York, CUSIssuer: CNGService inc, OUG Service inc, OG, LNew…

大牛手把手教你!2021大廠Java面試經歷

我聽到的一些發聲 你們賺的錢已經可以了: 我一個發小是做土木工程的,上海大學博士,參與很多著名建筑的工程,但是從薪資上看,還不如一些稍微像樣的公司的6年多的高級開發。為什么?這就是行業的紅利&#xf…

登錄華為賬戶顯示無法連接服務器,App提示連接不到服務器

App提示連接不到服務器 內容精選換一換本章節指導您使用MongoDB客戶端,通過彈性云服務器內網方式連接GaussDB(for Mongo)集群實例。操作系統使用場景:彈性云服務器的操作系統以Linux為例,客戶端本地使用的計算機系統以Windows為例。目標實例必…