Tair原始碼閱讀1 ConfigServer

2021-07-14 07:53:48 字數 1026 閱讀 6792

configserver裡面涉及到的幾個最重要的物件是,configserver,dataserver,table,group

1.物件介紹

(1)table,對照表

key通過hash之後,再取模可以得到value存放在哪個桶。這個桶是放在哪個dataserver的資訊,可以由乙個表來表示。

這個表就是對照表。

(2)configserver,配置伺服器

功能主要有,①讀取配置資訊以及心跳得到dataserver的資訊,進行對照表的生成。

②根據client的請求,傳遞對照表資訊

③根據心跳得到dataserver的資訊,然後控制資料在dataserver中的複製與遷移,以及重新建立對照表等。

(3)dataserver,資料伺服器

資料實際儲存的抽象,可以採用不同的儲存引擎,在configserver的控制下,完成資料的儲存、複製、遷移。

(4)group,組

通常,configserver有2個,互為主備。而dataserver通常有許多個,可以將dataserver維護為多個不同的group。

而對照表的新建與棄用,是以group為單位的。

2.**結構

如圖所示,這就是tair中,configserver模組下的**。

其中,①是入口,表示tair_config_server

②是整個模組的主要工作的執行緒,重要的函式都在這個thread的run裡面

③是資訊,分為group資訊和server資訊,作為②執行的一些處理判斷

④就是與對照表table相關的,上面的一些是控制table行為的類,下面的是描述表的具體的類,

table_builder1和table_builer2都繼承自table_builder,

table_builder1是採用負載均衡優先建立的對照表,table_builder2是採用優先考慮區分機房的邏輯建立的對照表。

3.主要流程

OpenCV原始碼閱讀 1

開始從讀取檔案的函式說起,這裡主要有兩個函式用於讀取影象的 實際上,當我們在做數字影象處理系統的時候,主要要考慮的也是怎麼讀乙個進來。第乙個函式 cvloadimage主要是用於返回乙個iplimage 的資料結構。第二個函式 cvloadimagem主要是用於返回乙個cvmat 的資料結構。實際上...

Spring 原始碼閱讀(1)

這週在學習spring的原始碼,常常迷失在 森林中,因為英語水平不高,常常需要借助google翻譯幫忙解釋注釋,所以速度比較慢。下面是我模擬spring的解析xml,依賴注入的過程,比較簡略。node node nodes.item i if node instanceof element claz...

spring原始碼閱讀(1)

spring核心是ioc和aop,aop的底層是 實現。分為兩種 jdk動態 和cglib 區別 動態 被 物件是要實現乙個介面,類首先要拿到這個介面,來進行強制轉換,通過反射來生成 物件 public class meipo implements invocationhandler overrid...