zookeeper_01:zookeeper概述

来源:http://www.cnblogs.com/FS372/archive/2016/08/28/5814628.html
-Advertisement-
Play Games

應對場景: 相對於開發在一臺電腦上運行的單個程式,如何讓一個應用中的多個獨立的程式協同工作是一件非常困難的事情。開發這樣的應用,很容易讓很多開發人員陷入如何使多個程式協同工作的邏輯中,最後導致沒有時間更好地思考和實現他們自己的應用程式邏輯;又或者開發人員對系統邏輯關註不夠,只是用很少的時間開發了一 ...


  •  應對場景:

  相對於開發在一臺電腦上運行的單個程式,如何讓一個應用中的多個獨立的程式協同工作是一件非常困難的事情。開發這樣的應用,很容易讓很多開發人員陷入如何使多個程式協同工作的邏輯中,最後導致沒有時間更好地思考和實現他們自己的應用程式邏輯;又或者開發人員對系統邏輯關註不夠,只是用很少的時間開發了一個簡單脆弱的主協調器,導致不可靠的單一失效點。

  •  ZooKeeper使命:

  在分散式系統中協作多個任務。一個協作任務指一個包含多個進程的任務。這個任務可以是為了協作或者是為了管理競爭。協作意味著多個進程需要一同處理某些事情,一些進程採取某些行動是的其他進程可以繼續工作。比如,在典型的主-從工作模式中,從節點處於空閑狀態時會通知主節點可以接受工作,於是主節點就會分配任務給從節點。競爭則不同,它指的是兩個進程不能同時處理工作的情況,一個進程必須等待另一個進程。

  • ZooKeeper工作方式

  提供某種有序共用存儲的組件

  • 示例:主-從應用

 

一般在這種架構中,主節點進程負責跟蹤從節點狀態和任務的有效性,並分配任務到從節點。

1、主節點崩潰

  如果主節點發送錯誤並失效,系統將無法分配新的任務或重新分配已失敗的任務。

  主節點崩潰,我們需要有一個備份主節點。備份主節點接管主要主節點的角色,進行故障轉移,新的主要主節點需要能夠恢復到舊的主要主節點崩潰時的狀態。對於主節點狀態的可恢復性,可以通過ZooKeeper獲取。

  狀態恢復並不是唯一的重要問題。假如主節點有效,備份節點卻認為主節點已崩潰。如主節點負載過高,告知消息任意延遲,備份主節點將會接管成為主要主節點,執行必要的程式,最終可能以主節點的角色開始執行,成為第二個主節點。

  此情況成為“腦裂”:系統中兩個或多個部分開始獨立工作,導致整體行為不一致。

2、從節點崩潰

  如果從節點崩潰,已分配的任務將無法完成

3、通信故障

  如果主節點和從節點之間無法進行信息交換,從節點將無法得知新任務分配給它。

  • 任務總結

1、主節點選取

  主節點可以分配任務給從節點

2、崩潰檢測

  主節點必須具有檢測從節點崩潰或失去連接的能力

3、組成員關係維護

  主節點必須具有指導哪一個從節點可以執行任務的能力

3、元數據管理

  主節點和從節點必須具有通過某種可靠的方式來保存和分配狀態和執行狀態的能力


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

-Advertisement-
Play Games
更多相關文章
  • 數組對每門編程語言都是重要的數據結構之一,java語言提供的數組是用來儲存固定大小的同類型元素的。 當你需要保存一組數據類型相同的變數或者對象時,我們不可能給每個變數都定義一個變數名,這樣的操作會使代碼臃腫、工作量大且無意義。這時我們就需要數組來保存這些數據。數組根據需要的不同分為一維數,二維數組和 ...
  • 先看一下文件,在當前包下有一個properties配置文件,在根目錄下有一個lib文件夾,裡面放的是mySql的驅動jar包 Driver :是一個介面,資料庫廠商必須提供實現的介面,能從其中獲取資料庫連接 可以通過Driver的實現類的對象獲取資料庫連接 * 1.加入mySql驅動 * 1.1 解 ...
  • 一、MyBaris簡介 1)MyBaris發展過程 MyBatis的前身叫iBatis,本是apache的一個開源項目, 2010年這個項目由apache software foundation 遷移到了google code,並且改名為MyBatis。 MyBatis是支持普通SQL查詢,存儲過程 ...
  • (一) 接需求 : 需求相關 (貼圖 ) 生成三核對文件 1、新增三核對菜單頁面中,增加生成三核對文件功能按鈕,彈窗可根據變電站、電壓等級查詢定值單。 2、定值單信息以表格形式展示,根據選擇情況,生成三核對文件。 整體就是這樣的一個需求,分sheet,合併單元格,設置各種單元格格式,要有序號。 (二 ...
  • Mybatis是輕量級的持久化框架,的確上手非常快. Mybatis大體上的思路就是由一個總的config文件配置全局的信息,比如mysql連接信息等。然後再mapper中指定查詢的sql,以及參數和返回值。 在Service中直接調用這個mapper即可。 依賴的jar包 主要的mybatis配置 ...
  • ...
  • JPA規範推薦使用Annotation來管理實體類與數據表之間的映射關係,從而避免同時維護兩份文件(Java 實體類 和 XML 映射文件),將映射信息(寫在Annotation中)與實體類集中在一起。 以下我將使用eclipse來構建一個簡單使用註解取代*.hbm.xml的查詢小例子。(p.s 建 ...
  • 首先需要導入包 然後寫方法,由於我使用的框架全部是spring 此處我只寫入實現層和控制層代碼 其中有個selectMatYearPlan(MAT_NO_, MAT_DESC_, MAT_TYPE_, MAT_SPEC_CAT_CODE_, COM_CODE_, DEPT_CODE_, YEAR_, ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...