【Canal源碼分析】重要類圖

從Canal的總體架構中,咱們能夠看出,在Canal中,比較重要的一些領域有Parser、Sink、Store、MetaManager、CanalServer、CanalInstance、CanalClient、Connection等等。下面咱們仔細分析下Canal的領域模型。sql

1、Parser

核心是AbstractEventParser,主要幹活的是MysqlEventParser。架構

EventParser.png

2、Sink

這個過程是對binlog進行歸併、過濾的操做,根據傳入的filter進行一些數據處理,主要核心的類是EntryEventSink。3d

EventSink.png

3、Store

這塊目前是寫到內存隊列中,核心類是MemoryEventStoreWithBuffer。blog

EventStore.png

4、MetaManager

這部分是進行源數據的管理工做,默認經過內存+zk的形式,也就是PeriodMixedMetaManager。隊列

MetaManager.png

5、CanalServer

Canal Server核心。內存

CanalServer.png

6、CanalInstance

Canal實例,真正幹活的。it

CanalInstance.png

7、CanalClient

客戶端,咱們須要重點關注的是ClusterCanalConnector。io

CanalConnector.png

相關文章
相關標籤/搜索