美文网首页
数据同步中间件Canal

数据同步中间件Canal

作者: 养一只tom猫 | 来源:发表于2020-04-30 18:55 被阅读0次

使用canal可以实现对数据进行收集,同步到NoSQL数据库等操作。

Canal简介

Canal是一个用于数据同步的中间件。

基于Java语言开发的,主要支持MySQL数据库,Canal会伪装成MySQL主库的从库,MySQL进行了增删改操作时,会把操作记录再binlog日志,而Canal会监听MySQL的binlog,在业务代码中可以指定监听哪一张表的数据变动(MySQL主库需要开启binlog日志)。

Canal基本执行流程:

MySQL----->binlog----->canal-server----->canal-client

可以在连接到canal-server服务的canal-client中获取MySQL数据,对数据进行操作。

简单理解Canal:

会对MySQL数据进行异步监控,是一款软件。

如何使用Canal
需要下载Canal的jar包,github:https://github.com/chenqian56131/spring-boot-starter-canal

在Spring Boot启动引导类上添加@EnableCanalClent注解声明该服务是Canal的客户端。

需要在配置文件中指定canal的连接信息:

canal.client.instances.example.host=你canal服务的host
canal.client.instances.example.port=11111 #canal默认端口为11111
canal.client.instances.example.batchSize=1000

监听代码:

@CanalEventListener
public class CanalListener{

    //设置监听的库名与表名
    @ListenPoint(schema = "dbName", table = {"tableName"})
    public void listener(CanalEntry.EventType eventType, CanalEntry.RowData rowData) {
        System.err.println("广告数据发生变化");
        //获取修改前行数据
        rowData.getBeforeColumnsList();

        //获取修改后行数据
       rowData.getAfterColumnsList();
    }
}

当你指定的那张表数据发生改变时,都会被canal监听到。

相关文章

网友评论

      本文标题:数据同步中间件Canal

      本文链接:https://www.haomeiwen.com/subject/lxptghtx.html