您的位置:首页 > 编程语言 > Java开发

基于canal的Spring-Boot-Starter

2018-03-22 15:59 4395 查看

前言

    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.Even
4000
tType.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!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: