美文网首页
canal数据监控(数据同步解决方案-操作ES做缓存)

canal数据监控(数据同步解决方案-操作ES做缓存)

作者: 任笙_8b8c | 来源:发表于2020-08-04 21:33 被阅读0次
   canal可以用来监控数据库数据的变化,从而获得新增数据,或者修改的数据。
图片.png

原理:

  • canal-server zk 进行多节点高可用部署
  • 可以多节点监听cancal-server ,实现高可用
  • 多个canal针对同一个数据变动消息不会重复处理
    1. canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议(吧自己伪装成Mysql主库的备份机,监听binlog日志,进行数据同步).
    1. mysql master收到dump请求,开始推送binary log给slave(也就是canal)
    1. canal解析binary log对象(原始为byte流)

广告缓存更新(数据监控微服务实现)

    当用户执行数据库的操作的时候,binlog 日志会被canal捕获到,并解析出数据。我们就可以将解析出 来的数据进行相应的逻辑处理。
   我们这里使用的一个开源的项目,它实现了springboot与canal的集成。比原生的canal更加优雅。
https://github.com/chenqian56131/spring-boot-starter-canal
   使用前需要将starter-canal安装到本地仓库。
   我们可以参照它提供的canal-test,进行代码实现。

进行微服务搭建
  • 1.先导入依赖
    <dependency>
    <groupId>com.xpand</groupId>
    <artifactId>starter-canal</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    </dependency>
  • 2.创建启动类,在启动类上加注解@EnableCanalClient //声明当前的服务是canal的客户端
  • 3.添加配置文件:application.properties


    mysql2.png
    mysql2.png

这样就实现了简单的数据监控,并且将改动的信息发送到消息队列中.下面就开始消费者监控队列:

相关文章

网友评论

      本文标题:canal数据监控(数据同步解决方案-操作ES做缓存)

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