Maxwell同步Mysql数据库写入Kafka
前提环境:Zookeeper集群,Kafka集群,安装Mysql,配置Binlog。
一、Maxwell简介
Maxwell就是把自己伪装成slave,假装从master复制数据。
Maxwell 是由美国Zendesk开源,用Java编写的MySQL实时抓取软件。 实时读取MySQL二进制日志Binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。
官网地址:http://maxwells-daemon.io/
二、开启Mysql的binlog服务
需要注意:配置my.cnf的binlog时候,注意监控同步的数据库是否是自己要Maxwell操作的库!
三、初始化Maxwell元数据库
1.在MySQL中建立一个maxwell库用于存储Maxwell的元数据
mysql -uroot -p000000
mysql> CREATE DATABASE maxwell;
2.设置安全级别
mysql> set global validate_password_length=4; mysql> set global validate_password_policy=0;
3.分配一个账号可以操作该数据库
mysql> GRANT ALL ON maxwell.* TO 'maxwell'@'%' IDENTIFIED BY '000000';
4.分配这个账号可以监控其他数据库的权限
mysql> GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO maxwell@'%';
四、使用Maxwell监控抓取MySQL数据
1.拷贝配置文件
[maxwell-1.25.0]$ cp config.properties.example config.properties
2.修改配置文件
producer=kafka kafka.bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092 #需要添加 kafka_topic=ods_base_db_m # mysql login info host=hadoop102 user=maxwell password=000000 #需要添加 初始化会用 client_id=maxwell_1
3.在/bin下编写maxwell.sh启动脚本
[maxwell-1.25.0]$ vim /home/bin/maxwell.sh /opt/module/maxwell-1.25.0/bin/maxwell --config /opt/module/maxwell-1.25.0/config.properties >/dev/null 2>&1 &
4.授予执行权限
sudo chmod +x /home/bin/maxwell.sh
5.运行启动程序
[maxwell-1.25.0]$ maxwell.sh
6.启动Kafka消费者客户端,观察结果
[kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic ods_base_db_m
7.执行/opt/module/rt_dblog下的jar生成模拟数据
java -jar gmall2020-mock-db-2020-11-27.jar
消费成功!
不要为了追逐,而忘记当初的样子。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话