Canal 阿里的中间键组件 https://github.com/alibaba/canal Maxwell https://github.com/zendesk/maxwell
producer:stdout kafka
常用架构:
MySQL ----- 中间件mcp ------>KAFKA----->?---->存储HBASE/KUDU/Cassandra 增量的
思考:
a.全量该怎么刷 bootstap
b.增量该怎么刷
1.对比
Canal(服务端) | Maxwell(服务端和客户端) | |
---|---|---|
语言 | Java | Java |
活跃度 | 活跃 | 活跃 |
HA | 支持 | 定制但是支持断点还原 |
数据落地 | 定制 | 落地到kafka |
分区 | 支持 | 支持 |
bootstrap | 不支持 | 支持 |
数据格式 | 格式自由 | json(格式固定) |
文档 | 较详细 | 较详细 |
随机读 | 支持 | 支持 |
bootstrap(引导程序)
综上所述:
个人选择Maxwell
a.服务端+客户端一体,轻量级的
b.Mawell代码量不多,质量还是不错的,支持断点+bootstap+json
c.社区相对活跃些,更新迭代的快
2.官网解读
3.部署
3.1 MySQL Install
3.2修改配置文件
$ vi my.conf
[mysqld]
binlog_format=row
$ service mysql start
3.3创建Maxwell的db和用户
mysql> CREATE USER 'maxwell'@'%' IDENTIFIED BY 'XXXXXX';
mysql> GRANT ALL ON maxwell.* TO 'maxwell'@'%';
mysql> GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';
mysql>flush privileges;
3.4解压Maxwell tar包
3.5测试STDOUT
STDOUT:用于测试
bin/maxwell --user='maxwell' --password='XXXXXX' --host='127.0.0.1' --producer=stdout
mysql> update ruozedata set age=29 where id=999;
问题:ROW ,你觉得binlog更新几个字段?
4.最后
4.1kafaka_version 版本
using kafka_version 0.11.0.1 0.10
jar 把kafka生产上的jar包拷过来
4.2特定场合大小写 (参数全小写的话就没事)
https://github.com/zendesk/maxwell/pull/909
4.3 mysql pos 10000 maxwell pos从990
4.4 http://maxwells-daemon.io/producers/#kafka
5.问题
MCP新特性:
Maxwell:时区 、column与value不相等 串位…