canal是一个同步mysql二进制日志到kafka分布式队列的工具,直接支持数据从mysql同步到kafka的主题中,一般为了不影响主库的性能,canal监控的是slave从库的binlog
主要要注意的事项是顺序性问题,常见的有以下几种配置:
- 一个数据库的所有数据写到一个topic主题中,然后按照表名作为分区键,每个表的数据发送到不同的分区中 --保证了表的数据都在同一个分区中
1.1 一个数据库的部分表数据写到一个topic主题中,另一些表数据写到另一个topic主题中,针对每个topic主题按照表名作为分区键,每个表的数据发送到不同的分区中 --保证了表的数据都在同一个分区中一个数据库的所有的表写到N个表名称命名的topic中,然后按照主键作为分区键,每个主键的数据发送到不同的分区中 --只能保证一个表的同一个主键在同一个分区中(只保证了更新同一个主键的时候的先后顺序)
这几种常用的方式中,第1和1.1方式兼顾了性能和顺序性 --表维度的顺序性和mysql的完全一致
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)