由于之前项目需要,了解到了阿里优秀框架canal,使用起来真是很不错很方便,分库分表情况下用来缓存或是ES数据的同步很便捷。在尝试过程中,走了点弯路,总结此文,希望能够对观者有所帮助。
Canal官方下载地址
https://github.com/alibaba/canal/releases
下载的canal.deployer启动canal服务端,然后编写客户端程序消费数据,此方式对于应用部署和维护显然不是很方便。为此结合canal.deployer代码编写与spring整合方式,使web应用启动时即能启动服务端,又能消费数据。
canal消费方采用策略模式,定义BaseProcess抽象类,包含processInsert、processUpdate、processDelete三个抽象方法,分别用于处理三种类型的数据操作。封装processConvert方法将RowChage中的数据反射为javaBean对象。
具体参考blog:
https://blog.csdn.net/suijiarui/article/details/78051465
https://blog.csdn.net/zjerryj/article/details/77152226