canal脚手架 优雅的清理缓存
canal
canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费
canal 工作原理
- canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议
- MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
- canal 解析 binary log 对象(原始为 byte 流)
用途
官网中给出的用途:
- 数据库镜像
- 数据库实时备份
- 索引构建和实时维护(拆分异构索引、倒排索引等)
- 业务 cache 刷新
- 带业务逻辑的增量数据处理
使用canal主要是在项目中有大量的缓存,例如商品信息,在B端和M端都可以对商品信息进行修改,而修改后需要对商品信息缓存进行删除,同时可能需要新压入商品信息。
问题
canal并没有提供Spring Boot的整合,但是好在官方给出的有示例,并且上手简单。这里进行以下简单的整合,方便使用Spring Boot的一些组件。
项目地址
使用方式
配置application.properties即可,对于需要监控多个destination需要配置CanalConfig,需要自定义连接属性等继承AbstractCanalExecutor即可,需要处理业务逻辑继承EntryHandler即可
TODO
在处理业务逻辑时,还是Column对象,后期需要改成表对应的实体(🕊)