前言
笔者所在的部门最近有需求要求把MySQL部分数据实时同步到Kafka中,结果调研采用了MaxWell,MaxWell性能比较高,但是唯一缺点为单点.
下载&解压
- 下载
wget https://github.com/zendesk/maxwell/releases/download/v1.25.0/maxwell-1.25.0.tar.gz
tar -zxvf maxwell-1.25.0.tar.gz
mv maxwell-1.25.0.tar.gz /opt/maxwell
配置
- 修改MySQL配置,开启binlog,重启MySQL
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW
expire_logs_days = 10
max_binlog_size = 100M
relay-log = relay-bin
relay-log-index = slave-relay-bin.index
auto-increment-offset = 2
auto-increment-increment = 1
#skip-grant-tables
innodb_flush_log_at_trx_commit=2
sync_binlog=1000
启动
- 命令行启动maxwell
bin/maxwell --user='maxwell' --password='123456789' --port=3306 --host='xxxx' --filter='exclude:*.*,include:information_schema.*' --producer=kafka --kafka.bootstrap.servers=10.10.21.10:9092 --kafka_topic=saas_mysql_binlog &
- 配置说明
- –user MySQL 用户名
- –password MySQL 密码
- –port MySQL 端口
- –host MySQL IP地址
- –filter MySQL排除的表,包含的表
- –producer 写入哪些中间件 kafka/redis/rabbitmq等
- –kafka.bootstrap.servers Kafka bootstrap地址
- –kafka_topic Kafka 写入的topic
验证
- 命令行消费kafka
kafka-console-consumer --bootstrap-server xxxxx:9092 --zookeeper xxxx:2181 --topic saas_mysql_binlog
总结
以上记录了maxwell基本使用.其中maxwell还包含实时写入其他中间件功能,读者可以触类旁通,希望本文对读者起到帮助作用.
参考
- http://maxwells-daemon.io/quickstart/
- https://www.cnblogs.com/whirly/p/10513868.html