今天猪脚是maxwell,zendesk公司开源 https://github.com/zendesk/maxwell
先看架构,和他竞争的有 Debezium Connector for MySQL
废话不多说,搭建目标任务 mysql的binlog 到redis (192.168.0.1 ~~~~~~~192.168.0.3)
1:下载 https://github.com/zendesk/maxwell/releases/download/v1.22.0/maxwell-1.22.0.tar.gz
2: 安装java ,配置好java环境变量 ,解压maxwell-1.22.0.tar.gz(因为是java 写的)
3:mv maxwell-1.22.0 /usr/local && ln -s maxwell maxwell-1.22.0
4: 配置原库(192.168.0.1)添加账号,(后面要用).
mysql> select user,host from mysql.user where user='canal';
+-------+------+
| user | host |
+-------+------+
| canal | % |
+-------+------+
1 row in set (0.01 sec)
mysql> show grants for canal@'%';
+---------------------------------------------------------------------------+
| Grants for canal@% |
+---------------------------------------------------------------------------+
| GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%' |
+---------------------------------------------------------------------------+
5:配置伪目标mysql库:(maxwell的主机)为什么叫伪目标库???因为就是模拟的从库行为。
mysql> select user,host from mysql.user where user='maxwell';
+---------+-----------+
| user | host |
+---------+-----------+
| maxwell | localhost |
+---------+-----------+
1 row in set (0.00 sec)
mysql> show grants for maxwell@'localhost';
+--------------------------------------------------------------+
| Grants for maxwell@localhost |
+--------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'maxwell'@'localhost' |
+--------------------------------------------------------------+
2 rows in set (0.00 sec)
6:配置maxwell:就是他了!
config.properties
[root@redis-binlog-reportform maxwell]# pwd;ls -la config.properties
/usr/local/maxwell
-rw-r--r-- 1 root root 10505 May 8 23:19 config.properties
配置redis入口
# *** redis ***
redis_host=192.168.0.3
redis_port=xxxx
redis_auth=XXXX
redis_database=0
redis_pub_channel=maxwell
redis_list_key=maxwell
redis_type=lpush
配置源库入口
replication_host=192.168.0.2
replication_user=canal
replication_password=xxx
replication_port=3306
配置伪从库入口
# mysql login info
host=localhost
user=maxwell
password=xxx
port=3306
7 启动maxwell
nohup bin/maxwell --config=config.properties &
8 查看进程及日志
MaxwellConfig - disabling bootstrapping; not available when using a separate replication host.
18:23:29,734 WARN MaxwellMetrics - Metrics will not be exposed: metricsReportingType not configured.
18:23:30,153 INFO Maxwell - Maxwell v1.22.0 is booting (MaxwellRedisProducer), starting at Position[BinlogPosition[mysql_bin.003563:231462217], lastHeartbeat=0]
18:23:30,334 INFO MysqlSavedSchema - Restoring schema id 1 (last modified at Position[BinlogPosition[mysql_bin.003555:753826693], lastHeartbeat=0])
18:23:30,537 INFO BinlogConnectorReplicator - Setting initial binlog pos to: mysql_bin.003563:231462217
9:查看redis 接收情况
[root@redis-binlog-reportform maxwell]# redis-cli -p 9001
127.0.0.1:9001> auth xxxx
OK
127.0.0.1:9001>
127.0.0.1:9001>
127.0.0.1:9001>
127.0.0.1:9001> type maxwell
list
127.0.0.1:9001>
127.0.0.1:9001> llen maxwell
(integer) 53900946
127.0.0.1:9001> llen maxwell
(integer) 53901342
127.0.0.1:9001> llen maxwell
(integer) 53901028
127.0.0.1:9001> llen maxwell
(integer) 53900745
127.0.0.1:9001>
来源:oschina
链接:https://my.oschina.net/u/4274625/blog/3543567