Alibaba Canal 数据同步中间件
1、bat和sh文件区别
A. .bat是在window系统上执行的批处理文件,批处理文件的扩展名是.bat或.cmd,启动该文件可以在cmd命令提示符下输入文件的名称,也可以双击该文件;
B. .sh是在Linux系统上执行的批处理文件,启动该文件可以在目录下输入./fileName.sh,也可以sh fileName.sh。
2、canal简单介绍
介绍canal之前,先说一下trigger触发器,我曾经做过一个主从节点,分省建设项目,需要把管理节点的数据同步到业务节点,就是采用trigger触发器做的client-server模式组件,后来发现很多问题,例如服务器时间不一致同步有问题、并发情况下触发器偶尔不工作等,后来项目重构采用了业务节点存放数据,管理节点汇聚数据,多数据源来解决的,节点读写分离就是采用canal解决的。
A. canal作为MySQL binlog增量获取和解析工具,采用了client-server模式,首先启动server端,再运行client端,server端直接下载使用,client端可采用不同的语言实现不同的消费逻辑;
B. 基于日志的增量订阅和消费的业务:数据库镜像、数据库实时备份、索引构建和实时维护、业务cache刷新、带业务逻辑的增量处理;
C. canal和MySQL主从复制的工作原理比较:
D. client的maven依赖:
<dependency> <groupId>com.alibaba.otter</groupId> <artifactId>canal.client</artifactId> <version>1.1.3</version> </dependency>
E. server启动配置:普通快速启动、docker模式快速启动、kafka/rocket快速启动等;
F、client适配elasticsearch、redis等。
3. canal client数据对象(EntryProtocol.proto)格式含义:
Entry |
|
||||||||||||||||||||||||||||||||
RowChange |
|
||||||||||||||||||||||||||||||||
Column |
|
注意:insert只有afterColumns,delete只有beforeColumns,而update有afterColumns和beforeColumns两个数据
可参考:canal中间件官网地址
https://www.cnblogs.com/javazhiyin/p/10836846.html
https://shift-alt-ctrl.iteye.com/blog/2399603
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗