canal 啟動介紹(2)

系列

canal 組件介紹(1)

canal 啟動介紹(2)

canal 數據消費介紹(3)

canal 高可用介紹(4)

canal源碼解析(2)—位點的實現



概述? ??

????本篇主要是為了講清楚canal是如何啟動的,從文章內容結構來說主要分為流程圖、時序圖、核心源碼三大塊。理解一個東西宏觀上一定要理清楚層次,然后細節再去追求融會貫通。希望你們會喜歡。


canal啟動流程圖


canal啟動流程圖

說明:

? ? 整個canal的啟動過程過程其實大的分為3個過程,分別入口的main函數啟動,配置的加載,服務的啟動。main的函數啟動就沒說可以說的,基本上就一個啟動入口,著重講講配置的加載。

? ? 配置的加載,canal的配置主要分為全局配置和實例配置,全局配置就是啟動canal需要的配置,實例配置就是啟動Instance需要的配置,這個可以參考后面給出的canal配置章節。

? ? 啟動過程,啟動過程從宏觀層面來說應該包括 啟動embededCanalServer、啟動CanalServerWithNetty,啟動Instance服務。如果在這個基礎上再考慮的話還需要考慮Instance層面的HA監控和配置變更監控,以及Server的HA監控。


canal啟動時序圖


canal啟動時序圖

說明

? ? canal啟動的時序圖其實是對canal的流程圖進行了細分,其實總體來看也是兩大塊,配置的加載,服務的啟動。

? ? 配置的加載包括:全局配置的加載、instance配置的加載、創建embededCanalServer和CanalServerWithNetty實例、創建server的對應monitor對象(用于HA)、autoscan的監控、創建zkClient實例。

? ? 服務啟動包括:注冊自身節點到zk節點、訂閱zk節點信息、啟動embededCanalServer實例、啟動CanalServerWithNetty實例、啟動instance服務(包括metaManager、alarmHandler、eventStore、eventSink、eventParser)、啟動instance配置監聽、啟動instance config配置監聽。


canal 啟動源碼解析


配置加載

配置加載-1
配置加載-2


服務啟動

服務啟動-1
服務啟動-2


canal配置文件

canal配置文件目錄

canal配置

說明

? ? canal的配置主要分為3大塊,分別是canal的全局配置canal.properties、instance的配置instance.properties、以及instance的spring的配置file-instance.xml。


canal全局配置

canal全局配置

說明

? ? canal的全局配置,基本上可以看到一些全局的配置。


canal的instance配置

canal的instance配置

說明

? ? canal的instance配置是指連接mysql的實例的配置,這個大家仔細看就能看懂。


canal-instance-sprint實例配置

instance-spring配置

說明

? ? spring配置其實是用于構建spring-factory用于創建instance實例使用的,從上圖就可以看出來??梢钥吹絚anal的instance各個組件包括eventParser、eventSink、eventStore、metaManager。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容