生产上Canal与Maxwell颠峰对决

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不相等 串位…

你可能感兴趣的:(Maxwell)