让 canal 成为 spring boot 组件

canal 集成为 springboot 组件


想法

随着 spring boot 框架的逐渐流行,越来越多的 spring boot 组件随之诞生,今天阿导带大家一起来实现 canal 集成为 spring boot 的组件的详细过程。
我们大佬需要我们做一个数据迁移和数据同步的业务,我就想着将其封装成 springboot 组件,这是写这个组件的初衷。
也许还有小伙伴没接触过 canal ,我其实也刚接触两天左右,想了解的伙伴请前往官网文档
我就不介绍这个 canal 了,因为我也刚看不久,我的见解都会在代码展示,下面来介绍我的思路。

思路

  • 配置构思和书写

  • 连接规则制定

  • 书写 canal 客户端

  • 监听 canal 客户端从 canal 服务端推送的消息,并处理。

  • 处理消息机制,这里使用了集成接口和注解两种方式

  • 测试类去测试所写的组件


实现

  • 创建配置文件

    1. CanalConfig.java:读取 spring boot 配置文件信息

    2. CanalClientConfiguration.java:加载 canal 配置,并启动客户端

  • 注解使其成为 spring boot 组件

    EnableCanalClient.java:该注解作用是启用 canal

  • canal 客户端书写:SimpleCanalClient.java

    1. 初始化监听器(注解方式:CanalEventListener.java;实现接口方式:DealCanalEventListener.java),这里通过一个工具类,BeanUtil,通过反射注入 bean (包含通过接口方式实现数据同步和注解方式的数据同步).

    2. 开启 canal 客户端,若是开启多个客户端,会开启多个进程。

    3. 初始化一个线程池,使得线程复用,减小频繁创建线程带来的内存开销。

    4. 通过线程池开启 canal 客户端,每一个客户端都是一个线程。

  • canal 客户端处理消息过程:

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值