Zookeeper--產生原因及功能
1、分散式存在的問題
- 分散式解決的問題:
資源不夠的問題
- 通過分散式的資源整合,將儲存或者計算交給多臺機器並行處理
- 問題一:
大的任務一臺機器解決不了
- 40TB檔案
- 普通一臺機器:32TB,無法儲存
- 問題二:即使一臺機器能解決,但是
效能比較差
- 40TB檔案:寫速度1s/1TB
- 特殊一臺機器:64TB,可以儲存
40s
- 分散式叢集儲存:16TB x 4 臺,總共64TB ,可以儲存
10s:高併發的
- 大資料中:越快越好
- 資料的價值會隨著時間的流逝而逐漸降低
- 分散式本身存在的問題
- node4當機了 ,主服務就沒有了
- 整個分散式叢集就癱瘓了
- 沒有服務能接受請求以及管理所有的任務
- 如果產生了兩個主服務怎麼辦?
- 如果同一時刻出現了 兩個主服務,功能一模一樣,客戶端請求誰?誰來負責管理?
- 在這樣的分散式架構中,如果我們需要更改程式碼的配置怎麼辦?
- 總共有100臺機器
- 如果不做分散式管理:就需要手動替換100臺機器的程式碼
- 即使我們將程式碼都更改了,如何保證這100臺機器的程式碼配置是一樣的?
- 假設:100臺機器的程式碼配置的JDBC連線屬性都必須是一致的
- 突然,公司要更換資料庫叢集,地址發生改變,需要修改jdbc配置
- 問題
資料一致性問題
分散式同步鎖問題
單節點故障
2、Zookeeper的功能
一致性服務
存放共同配置
- 將所有重要的可能產生變化的配置儲存在Zookeeper中
- 所有的分散式節點,在需要讀取這個配置的時候,直接從Zookeeper中讀取這個配置
- 如果要修改,只要更改Zookeeper中的配置即可
註冊中心
- 所有功能相同的服務節點,都要向zookeeper進行註冊,才能實現應用
命名服務
構建整體,統一入口
- 將統一功能節點構建一個統一的命名,作為一個整體,在zookeeper中將兩個主服務構建成一個整體
- 等客戶端請求的時候,先請求zookeeper,zookeeper中會記錄誰是工作的,誰是備份的,將請求轉發給工作狀態的節點
分散式鎖
- 兩個主服務
- 如果有一個主服務是工作狀態的,另一個主服務能不能是工作狀態的?
- 不能
- 所有的主服務向Zookeeper進行註冊,並且參加選舉,會選舉出一個工作的主服務,一旦選舉成功
- 其他的主服務是不允許作為工作狀態的,只能成為備份狀態
選舉的過程
- 第一種方式:
搶注
誰建立成功,誰就是主服務臨時節點
- 所有的主服務都會一起到zookeeper中建立一個檔案
- 誰建立成功,誰就是工作狀態,其他的就是備份狀態
- 第二種方式:
排號
大家都建立一個檔案,這個檔案按照建立的先後順序編號,誰的編號最小,誰就是工作狀態,其他的是備份狀態有序臨時節點
- 備份的什麼時候會自動變成工作狀態呢?
- 所有的備份服務都會監聽工作狀態所建立的那個檔案
- 如果工作狀態的服務故障了,這個檔案會自動消失
- 如果這個檔案自動消失,那麼所有的備份服務會重新選舉
選舉
保證叢集中選舉出一個工作的主服務
- 如果工作的主服務故障了,要從多個備份的主服務中選舉出一個新的工作主服務
資料釋出訂閱
- 將一些
關鍵性
的資料,很多程式都想要的資料儲存在Zookeeper中 - 生產者:負責往Zookeeper中寫入資料
- 消費者:負責從Zookeeper中讀取資料
總結
- 統一化的資料一致性:關鍵性的資料共享的資料保持一致
- 註冊中心
- 選舉:誰是主節點?幫別的工具中的服務選舉
- 命名服務:請求誰?
- 分散式鎖:不能同時是主節點啊?
相關文章
- Linux中產生zombie的原因詳解及解決方法!Linux
- vi/vim配置篇:亂碼產生的原因及解決
- Linux環境下段錯誤的產生原因及除錯方法小結Linux除錯
- 生產內網ssh登陸變慢問題原因及解決辦法內網
- RNN神經網路產生梯度消失和梯度爆炸的原因及解決方案RNN神經網路梯度
- Zookeeper--節點操作
- 生產系統 SQL 執行異常原因分析SQL
- Fastjson反序列化遠端程式碼執行漏洞產生原因及修復建議ASTJSON
- Zookeeper--節點型別型別
- 精益生產難成功的原因是什麼
- Redis擊穿、穿透、雪崩產生原因以及解決思路Redis穿透
- 精益生產諮詢公司不精益?原因在這裡
- 延遲塊清理介紹(select也會產生redo的原因)
- 深度學習中“過擬合”的產生原因和解決方法深度學習
- (資料庫十)資料庫中的鎖機制以及死鎖產生的原因及解決辦法資料庫
- 北京企業選擇精益生產的原因是什麼?
- 精益生產難以紮根企業的三大原因
- 一文簡析電感噪音產生的常見原因分析
- 乾貨 | 呆滯庫存(Slow moving)產生原因分析和預防措施
- Elasticsearch叢集搭建教程及生產環境配置Elasticsearch
- log4j漏洞的產生原因和解決方案,小白都能看懂!!!!
- Oracle EBS R12客戶端一種FRM-92050的產生原因Oracle客戶端
- web應用常見7大安全漏洞,淺析產生的原因!Web
- JVM 發生記憶體溢位的 8 種原因、及解決辦法JVM記憶體溢位
- 晶振頻偏產生原理及背景教程(一)
- 2020年危險化學品生產單位安全生產管理人員考試題及危險化學品生產單位安全生產管理人員答案解析
- 2021年危險化學品生產單位安全生產管理人員答案解析及危險化學品生產單位安全生產管理人員新版試題
- mysqldump同步生產到生產資料MySql
- 來看看是什麼原因導致生產服上的系統CPU高的?
- 大資料開發-Flume-頻繁產生小檔案原因和處理大資料
- Dcat Admin 使用 Laravel Octane 時匯出功能無法使用的原因及修復方法Laravel
- 洗衣粉批發生產廠家的產品特點及優勢
- 2021年危險化學品生產單位安全生產管理人員證考試及危險化學品生產單位安全生產管理人員模擬考試題
- Flink生產環境常見問題及解決方法
- 深入理解Kafka核心設計及原理(二):生產者Kafka
- 插曲:Kafka的生產者原理及重要引數說明Kafka
- vcenter6.7生產環境叢集部署及應用
- PDM系統的產生及相關技術理論