实时MySQL数据源同步中间件-Maxwell
时间:2022-06-18
本文章向大家介绍实时MySQL数据源同步中间件-Maxwell,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Maxwell 介绍
Maxwell是一个读取MySQL binlog并将行更新作为JSON写入Kafka,Kinesis或其他流平台的应用程序。
Maxwell快速开始
1.下载Maxwell(以下三种方式任选一种即可)
tar
curl -sLo - https://github.com/zendesk/maxwell/releases/download/v1.20.0/maxwell-1.20.0.tar.gz
| tar zxvf -
cd maxwell-1.20.0
Docker
docker pull zendesk/maxwell
macOS homebrew
brew install maxwell
配置MySQL
修改my.cnf
vim /etc/mysql/my.cnf
[mysqld]
server_id=1
log-bin=master
binlog_format=row
创建相应的用户和数据库
mysql> CREATE USER 'maxwell'@'%' IDENTIFIED BY 'maxwell';
mysql> CREATE DATABASE maxwell;
mysql> GRANT ALL ON maxwell.* TO 'maxwell'@'%';
mysql> GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';
mysql> flush privileges;
配置完成之后,重启MySQL
运行Maxwell
命令行
maxwell --user='maxwell' --password='maxwell' --host='127.0.0.1' --producer=stdout
创建测试数据库和表进行测试
create database test;
use test;
create table maxwell(id int,daemon varchar(100));
insert into `test`.`maxwell` set id = 1, daemon = 'Stanislaw Lem';
update test.maxwell set daemon = 'firebus! firebus!' where id = 1;
控制台输出
{
"database": "test",
"table": "maxwell",
"type": "insert",
"ts": 1551862585,
"xid": 381,
"commit": true,
"data": {
"id": 1,
"daemon": "Stanislaw Lem"
}
}
{
"database": "test",
"table": "maxwell",
"type": "update",
"ts": 1551862800,
"xid": 450,
"commit": true,
"data": {
"id": 1,
"daemon": "firebus! firebus!"
},
"old": {
"daemon": "Stanislaw Lem"
}
}
Kafka
启动Zookeeper
zkServer.sh start
启动kafka server
kafka-server-start.sh /opt/kafka/config/server-1.properties
启动Maxwell
maxwell --user='maxwell' --password='maxwell' --host='127.0.0.1' --producer=kafka --kafka.bootstrap.servers=localhost:9092 --kafka_topic=maxwell
启动kafka-console-consumer消费消息
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic maxwell
创建测试数据进行测试
insert into `test`.`maxwell` set id = 1, daemon = 'Stanislaw Lem';
update test.maxwell set daemon = 'firebus! firebus!!' where id = 1;
附录
参考文献:
Maxwell官网quickstart:http://maxwells-daemon.io/quickstart/
- 帝国cms文章页调用当前文章URL如何操作?
- dedecms文章页调用地址(当前文章URL)如何操作?
- 饭团开通一周,3人学会了比特币操作
- Sample K算法
- C#读取“我的文档”等特殊系统路径及环境变量
- winform CheckedListBox实现全选/全不选
- 机器学习该如何入门
- dedecms建的网站如何去掉/index.html
- WPF ContextMenu的使用
- Json的序列化与反序列化以及乱入的k_BackingField
- 亚马逊面试题
- VisualStudio 怎么使用Visual Leak Detector
- Cannot find module 'socket.io'
- 【学术】独热编码如何在Python中排列数据?
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解