zookeeper 都有哪些使用場景?

来源:https://www.cnblogs.com/midoujava/archive/2019/10/02/11618666.html
-Advertisement-
Play Games

面試題 zookeeper 都有哪些使用場景? 面試官心理分析 現在聊的 topic 是分散式系統,面試官跟你聊完了 dubbo 相關的一些問題之後,已經確認你對分散式服務框架/RPC框架基本都有一些認知了。那麼他可能開始要跟你聊分散式相關的其它問題了。 分散式鎖這個東西,很常用的,你做 Java ...


關註米兜Java.md

面試題

zookeeper 都有哪些使用場景?

面試官心理分析

現在聊的 topic 是分散式系統,面試官跟你聊完了 dubbo 相關的一些問題之後,已經確認你對分散式服務框架/RPC框架基本都有一些認知了。那麼他可能開始要跟你聊分散式相關的其它問題了。

分散式鎖這個東西,很常用的,你做 Java 系統開發,分散式系統,可能會有一些場景會用到。最常用的分散式鎖就是基於 zookeeper 來實現的。

其實說實話,問這個問題,一般就是看看你是否瞭解 zookeeper,因為 zookeeper 是分散式系統中很常見的一個基礎系統。而且問的話常問的就是說 zookeeper 的使用場景是什麼?看你知道不知道一些基本的使用場景。但是其實 zookeeper 挖深了自然是可以問的很深很深的。

面試題剖析

大致來說,zookeeper 的使用場景如下,我就舉幾個簡單的,大家能說幾個就好了:

  • 分散式協調
  • 分散式鎖
  • 元數據/配置信息管理
  • HA高可用性

分散式協調

這個其實是 zookeeper 很經典的一個用法,簡單來說,就好比,你 A 系統發送個請求到 mq,然後 B 系統消息消費之後處理了。那 A 系統如何知道 B 系統的處理結果?用 zookeeper 就可以實現分散式系統之間的協調工作。A 系統發送請求之後可以在 zookeeper 上對某個節點的值註冊個監聽器,一旦 B 系統處理完了就修改 zookeeper 那個節點的值,A 系統立馬就可以收到通知,完美解決。

file

分散式鎖

舉個慄子。對某一個數據連續發出兩個修改操作,兩台機器同時收到了請求,但是只能一臺機器先執行完另外一個機器再執行。那麼此時就可以使用 zookeeper 分散式鎖,一個機器接收到了請求之後先獲取 zookeeper 上的一把分散式鎖,就是可以去創建一個 znode,接著執行操作;然後另外一個機器也嘗試去創建那個 znode,結果發現自己創建不了,因為被別人創建了,那隻能等著,等第一個機器執行完了自己再執行。

file

元數據/配置信息管理

zookeeper 可以用作很多系統的配置信息的管理,比如 kafka、storm 等等很多分散式系統都會選用 zookeeper 來做一些元數據、配置信息的管理,包括 dubbo 註冊中心不也支持 zookeeper 麽?

zookeeper-meta-data-manage

HA高可用性

這個應該是很常見的,比如 hadoop、hdfs、yarn 等很多大數據系統,都選擇基於 zookeeper 來開發 HA 高可用機制,就是一個重要進程一般會做主備兩個,主進程掛了立馬通過 zookeeper 感知到切換到備用進程。

file

本文在米兜公眾號鏈接:
https://mp.weixin.qq.com/s/nkKW2O-qW0AJpqxqGMQVNA

歡迎關註米兜Java,一個註在共用、交流的Java學習平臺。

file


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • js中scroll滾動相關 一.元素相關 | 屬性/方法 | 解釋 | | | | | element.scrollHeight | 返回元素的整體高度。 | | element.scrollWidth | 返回元素的整體寬度。 | | element.scrollLeft | 返回元素左邊緣與視圖 ...
  • Vue 提供了一些不同的過度效果,主要根 v-if v-show 動態組件 1. Vue給動畫分了6個過程,在css中,扮演6個類, 1. .v-enter定義動畫的開始狀態 2. .v-enter-active 定義動畫生效時的狀態 3. .v-enter-to 定義動畫的結束狀態 4. .v-l ...
  • Slot v-slot 插槽元素 瀏覽器在解析時候首先把它當作標簽來解析,只有遇到不認識的就不管了,直接跳過,當你發現是組件,在以組件形式解析。 使用插槽的好處? 比如一個網站 分佈頂部都是一樣的,如果使用組件,要寫好幾個導航組件。我只寫一個導航組件,然後讓插值裡面東西去覆蓋內容 就可以了。 * 在 ...
  • 前兩天遇到的問題,經過很多網友的深刻討論,終於有一個相對可以解釋的通的邏輯了,然後我仔細研究了一下相關的點,順帶研究了一下js中的隱式變數。 以下文章中提到的隱式變數都是指沒有用var,let,const等關鍵字定義的變數。 以下文章中提到的var變數都是指用var聲明定義的變數。 一遇到隱式變數, ...
  • 1.Form標簽:用來將表單外的內容與表單進行關聯。其主要元素有input,button,select。 action屬性:指定表單的發送地址。 Novalidate屬性:數據提交時不校驗。 Target屬性:指定在何處打開指定的url。 method屬性:表單數據發送至伺服器的方法,預設屬性就是g ...
  • 在 HTML 中,JavaScript 語句是由 web 瀏覽器“執行”的“指令”。 實例 var x, y, z; // 語句 1 x = 22; // 語句 2 y = 11; // 語句 3 z = x + y; // 語句 4 JavaScript 程式 電腦程式是由電腦“執行”的一系列 ...
  • 策略模式(Strategy): 策略模式是對演算法的包裝,是把使用演算法的責任和演算法本身分割開來,委派給不同的對象管理。策略模式通常把一個系列的演算法包裝到一系列的策略類裡面,作為一個抽象策略類的子類。用一句話來說,就是:“準備一組演算法,並將每一個演算法封裝起來,使得它們可以互換”。 策略模式的角色: 1) ...
  • 一 Form介紹 我們之前在HTML頁面中利用form表單向後端提交數據時,都會寫一些獲取用戶輸入的標簽並且用form標簽把它們包起來。 與此同時我們在好多場景下都需要對用戶的輸入做校驗,比如校驗用戶是否輸入,輸入的長度和格式等正不正確。如果用戶輸入的內容有錯誤就需要在頁面上相應的位置顯示對應的錯誤 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...