美文网首页
数据同步中间件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