实时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/
- a windows service with the name MYSQL already e...
- NameError: name 'admin' is not defined(彻底解决方案)
- Error: No module named blog
- ubuntu中的django安装配置与操作
- IOS开发之-搜索栏UISearchController详解
- java归并排序(最精简代码)
- java希尔排序(最精简代码)
- java插入排序(最精简代码)
- java快速排序(最精简代码)
- java选择排序(最精简代码)
- java冒泡排序(最精简代码)
- column 'id' in field list is ambiguous
- mysql中limit使用
- django中mysql配置及使用
- 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 实例讲解
- 如何将单 master 升级为多 master 集群
- 为 Kubernetes 节点发布扩展资源
- Kubernetes 资源预留配置
- PHP一些常见的漏洞梳理
- File的基本操作
- 一文教你在Colab上使用TPU训练模型
- 如何在Docker容器中运行Docker [3种方法]
- [漏洞复现] 三.CVE-2020-0601微软证书漏洞及Windows验证机制欺骗复现
- PDF文件密码破解
- Ubuntu 制作离线源
- keycloak+istio实现基于jwt的服务认证授权
- dplyr 包arrange对数据排序
- ELK 日志报警插件 ElastAlert
- 简单的源码免杀过av
- vue nextTick源码