基于1.1.5-alpha版本,具体源码笔记可以参考我的github:https://github.com/saigu/JavaKnowledgeGraph/tree/master/code_reading/canal
本文将对canal的server模块进行分析,跟之前一样,我们带着几个问题来看源码:
CanalServer有几种使用方式?
控制台Admin、客户端client是如何与CanalServer交互的?
CanalServerWithNetty和CanalServerWithEmbedded究竟有什么关系?
Canal事件消费的特色协议,异步流式api(get/ack/rollback协议)的设计是如何实现的?
server模块内的结构如下: