从Canal的整体架构中,我们可以看出,在Canal中,比较重要的一些领域有Parser、Sink、Store、MetaManager、CanalServer、CanalInstance、CanalClient、Connection等等。下面我们仔细分析下Canal的领域模型。
一、Parser
核心是AbstractEventParser,主要干活的是MysqlEventParser。

二、Sink
这个过程是对binlog进行归并、过滤的操作,根据传入的filter进行一些数据处理,主要核心的类是EntryEventSink。

三、Store
这块目前是写到内存队列中,核心类是MemoryEventStoreWithBuffer。

四、MetaManager
这部分是进行源数据的管理工作,默认通过内存+zk的形式,也就是PeriodMixedMetaManager。

五、CanalServer
Canal Server核心。

六、CanalInstance
Canal实例,真正干活的。

七、CanalClient
客户端,我们需要重点关注的是ClusterCanalConnector。

网友评论