概述
前言
canal是阿里巴巴的基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了mysql。
可以用于比如数据库数据变化的监听从而同步缓存(如Redis)数据等。
由于项目中基本都是使用的Spring-Boot,所以写了一个基于Spring-Boot的starter方便使用。
特点
使用方便。可以通过简单的配置就可以开始使用,当对某些操作感兴趣的时候可以通过注解或者注入接口实现的方式监听对应的事件。
eg:
注解方式:
@CanalEventListener
public class MyEventListener {
@InsertListenPoint
public void onEvent(CanalEntry.EventType eventType, CanalEntry.RowData rowData) {
//do something...
}
@UpdateListenPoint
public void onEvent1(CanalEntry.RowData rowData) {
//do something...
}
@DeleteListenPoint
public void onEvent3(CanalEntry.EventType eventType) {
//do something...
}
@ListenPoint(destination = "example", schema = "canal-test", table = {"t_user", "test_table"}, eventType = CanalEntry.EventType.UPDATE)
public void onEvent4(CanalEntry.EventType eventType, CanalEntry.RowData rowData) {
//do something...
}
}
接口实现方式:
@Component
public class MyEventListener2 implements CanalEventListener {
@Override
public void onEvent(CanalEntry.EventType eventType, CanalEntry.RowData rowData) {
//do something...
}
}
或者:
@Component
public class MyEventListener2 implements DmlCanalEventListener {
@Override
public void onInsert(CanalEntry.RowData rowData) {
//do something...
}
@Override
public void onUpdate(CanalEntry.RowData rowData) {
//do something...
}
@Override
public void onDelete(CanalEntry.RowData rowData) {
//do something...
}
}
使用方法
注意:基于已经有了数据库环境和canal-server环境的前提。
- 获取源码。源码地址:chenqian56131
- 将源码中的starter-canl项目打包引入或者通过maven安装到仓库。
- 在自己的Spring-Boot项目中:
- 加入配置:
canal.client.instances.example.host=127.0.0.1 canal.client.instances.example.port=11111
- 编写自己的Listener(参照canal-test中的MyEventListener)
- 启动。---》OK!
最后
以上就是爱笑跳跳糖为你收集整理的基于canal的Spring-Boot-Starter的全部内容,希望文章能够帮你解决基于canal的Spring-Boot-Starter所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复