maxwell 输出消息到 redis
文章目录
- 1、maxwell 输出消息到 redis
- 1.1、启动一个Maxwell容器,它会连接到指定的MySQL数据库,捕获变更事件,并将这些事件以Redis发布/订阅的形式发送到指定的Redis服务器
- 1.2、在已运行的 Redis 容器中执行 Redis 命令行界面(CLI)工具
- 解决方法
- 示例
- 完整命令示例
- 注意事项
- 1.3、tingshu_album 数据库中 新增数据
- 1.4、tingshu_album 数据库中 更新数据
- 1.5、tingshu_album 数据库中 删除数据
- 1.6、总结
1、maxwell 输出消息到 redis

Reference - Maxwell’s Daemon:https://maxwells-daemon.io/config/
redis-producer:https://maxwells-daemon.io/config/#redis-producer

1.1、启动一个Maxwell容器,它会连接到指定的MySQL数据库,捕获变更事件,并将这些事件以Redis发布/订阅的形式发送到指定的Redis服务器
docker run -it --rm zendesk/maxwell bin/maxwell --user=$MYSQL_USERNAME \--password=$MYSQL_PASSWORD --host=$MYSQL_HOST --producer=stdout
docker run -it --rm zendesk/maxwell bin/maxwell --user=maxwell \--password=maxwell --host=192.168.74.148 --port=3306 --producer=redis \--redis_host=192.168.74.148 --redis_port=6379 --redis_auth=123456 --redis_type=pubsub --redis_key=maxwell
您提供的命令是一个Docker命令,用于运行Zendesk Maxwell这个容器化应用程序。Maxwell是一个变更数据捕获(CDC)工具,用于从MySQL数据库捕获变更事件并将它们发布到其他系统,如Redis、Kafka等。下面是对该命令的详细解释:
docker run -it --rm zendesk/maxwell bin/maxwell \--user=maxwell \--password=maxwell \--host=192.168.74.148 \--port=3306 \--producer=redis \--redis_host=192.168.74.148 \--redis_port=6379 \--redis_auth=123456 \--redis_type=pubsub \--redis_key=maxwell
- docker run: 这是Docker用来创建和启动一个新的容器实例的命令。
- -it: 这两个选项告诉Docker在前台运行容器,并且保持交互模式打开,使得可以在容器内部执行命令。
- –rm: 这个选项指示Docker在容器退出后自动删除容器,有助于保持系统清洁。
- zendesk/maxwell: 这是指定要运行的Docker镜像的名称,即Zendesk提供的Maxwell镜像。
- bin/maxwell: 这是Maxwell可执行文件的路径,告诉Docker运行这个特定的二进制文件。
- –user=maxwell: 指定连接到MySQL数据库的用户名。
- –password=maxwell: 指定连接到MySQL数据库的密码。
- –host=192.168.74.148: 指定MySQL数据库服务器的IP地址。
- –port=3306: 指定MySQL数据库服务器的端口号。
- –producer=redis: 指定Maxwell应该将变更事件发布到Redis。
- –redishost=192.168.74.148: 指定Redis服务器的IP地址。
- –redisport=6379: 指定Redis服务器的端口号。
- –redisauth=123456: 指定连接到Redis服务器的认证密码。
- –redistype=pubsub: 指定Redis的发布/订阅模式作为消息传递机制。
Publish/Subscribe,即发布/订阅模式。 - –rediskey=maxwell: 指定在Redis中使用的键名,Maxwell将变更事件发布到这个键对应的频道。
执行这个命令会启动一个Maxwell容器,它会连接到指定的MySQL数据库,捕获变更事件,并将这些事件以Redis发布/订阅的形式发送到指定的Redis服务器。
[root@localhost ~]# docker run -it --rm zendesk/maxwell bin/maxwell \
> --user=maxwell \
> --password=maxwell \
> --host=192.168.74.148 \
> --port=3306 \
> --producer=redis \
> --redis_host=192.168.74.148 \
> --redis_port=6379 \
> --redis_auth=123456 \
> --redis_type=pubsub \
> --redis_key=maxwell
2024-09-19 10:13:40 INFO Maxwell - Starting Maxwell. maxMemory: 1031798784 bufferMemoryUsage: 0.25
2024-09-19 10:13:40 INFO Maxwell - Maxwell v1.41.2 is booting (MaxwellRedisProducer), starting at Position[BinlogPosition[spzxbinlog.000003:6061], lastHeartbeat=0]
2024-09-19 10:13:40 INFO MysqlSavedSchema - Restoring schema id 1 (last modified at Position[BinlogPosition[spzxbinlog.000003:156], lastHeartbeat=0])
2024-09-19 10:13:41 INFO BinlogConnectorReplicator - Setting initial binlog pos to: spzxbinlog.000003:6061
2024-09-19 10:13:41 INFO BinaryLogClient - Connected to 192.168.74.148:3306 at spzxbinlog.000003/6061 (sid:6379, cid:43)
2024-09-19 10:13:41 INFO BinlogConnectorReplicator - Binlog connected.
1.2、在已运行的 Redis 容器中执行 Redis 命令行界面(CLI)工具
[root@localhost ~]# docker exec -it spzx-redis redis-cli
127.0.0.1:6379>
[root@localhost ~]# docker exec -it spzx-redis redis-cli
127.0.0.1:6379> SUBSCRIBE maxwell
Reading messages... (press Ctrl-C to quit)
(error) NOAUTH Authentication required.
当你尝试在 Redis 容器中使用 SUBSCRIBE 命令时收到 (error) NOAUTH Authentication required. 错误,这意味着 Redis 服务器需要认证才能执行命令。Redis 从版本 3.0 开始支持密码认证功能。
解决方法
要在 Redis 中执行需要认证的操作,你需要先使用 AUTH 命令提供正确的密码。以下是具体的步骤:
-
连接到 Redis:
使用docker exec -it spzx-redis redis-cli连接到 Redis CLI。 -
提供认证:
使用AUTH命令提供 Redis 服务器所需的密码。假设密码是yourpassword,命令如下:AUTH yourpassword -
执行订阅操作:
成功认证后,你可以继续执行订阅命令:SUBSCRIBE maxwell
示例
假设 Redis 的密码是 maxwell,你可以按照以下步骤操作:
-
连接到 Redis CLI:
docker exec -it spzx-redis redis-cli -
提供认证:
AUTH maxwell -
执行订阅操作:
SUBSCRIBE maxwell
完整命令示例
你可以在一次命令中完成认证和订阅:
docker exec -it spzx-redis redis-cli -n 0 << 'EOF'
AUTH maxwell
SUBSCRIBE maxwell
EOF
或者,你也可以在 Redis CLI 中逐条输入命令:
docker exec -it spzx-redis redis-cli
127.0.0.1:6379> AUTH maxwell
127.0.0.1:6379> SUBSCRIBE maxwell
注意事项
-
密码安全:
- 确保使用强密码,并且不要在命令行中明文显示密码。可以考虑使用环境变量或其他方式传递密码。
-
Redis 配置文件:
- 确保 Redis 的配置文件(
redis.conf)中设置了requirepass选项,并指定了正确的密码。
- 确保 Redis 的配置文件(
通过上述步骤,你应该能够成功地通过认证并执行 Redis 的订阅命令。如果仍然遇到问题,请检查 Redis 的配置和密码是否正确。
[root@localhost ~]# docker exec -it spzx-redis redis-cli
127.0.0.1:6379> SUBSCRIBE maxwell
Reading messages... (press Ctrl-C to quit)
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> SUBSCRIBE maxwell
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "maxwell"
3) (integer) 1
1.3、tingshu_album 数据库中 新增数据

[root@localhost ~]# docker exec -it spzx-redis redis-cli
127.0.0.1:6379> SUBSCRIBE maxwell
Reading messages... (press Ctrl-C to quit)
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> SUBSCRIBE maxwell
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "maxwell"
3) (integer) 1
1) "message"
2) "maxwell"
3) "{\"database\":\"tingshu_album\",\"table\":\"base_category1\",\"type\":\"insert\",\"ts\":1726741946,\"xid\":6478,\"commit\":true,\"data\":{\"id\":16,\"name\":\"maxwell\",\"order_num\":0,\"create_time\":\"2024-09-19 10:32:26\",\"update_time\":\"2024-09-19 10:32:26\",\"is_deleted\":0}}"

1.4、tingshu_album 数据库中 更新数据

[root@localhost ~]# docker exec -it spzx-redis redis-cli
127.0.0.1:6379> SUBSCRIBE maxwell
Reading messages... (press Ctrl-C to quit)
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> SUBSCRIBE maxwell
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "maxwell"
3) (integer) 1
1) "message"
2) "maxwell"
3) "{\"database\":\"tingshu_album\",\"table\":\"base_category1\",\"type\":\"insert\",\"ts\":1726741946,\"xid\":6478,\"commit\":true,\"data\":{\"id\":16,\"name\":\"maxwell\",\"order_num\":0,\"create_time\":\"2024-09-19 10:32:26\",\"update_time\":\"2024-09-19 10:32:26\",\"is_deleted\":0}}"
1) "message"
2) "maxwell"
3) "{\"database\":\"tingshu_album\",\"table\":\"base_category1\",\"type\":\"update\",\"ts\":1726742253,\"xid\":7197,\"commit\":true,\"data\":{\"id\":16,\"name\":\"plus\",\"order_num\":0,\"create_time\":\"2024-09-19 10:32:26\",\"update_time\":\"2024-09-19 10:37:33\",\"is_deleted\":0},\"old\":{\"name\":\"maxwell\",\"update_time\":\"2024-09-19 10:32:26\"}}"

1.5、tingshu_album 数据库中 删除数据

[root@localhost ~]# docker exec -it spzx-redis redis-cli
127.0.0.1:6379> SUBSCRIBE maxwell
Reading messages... (press Ctrl-C to quit)
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> SUBSCRIBE maxwell
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "maxwell"
3) (integer) 1
1) "message"
2) "maxwell"
3) "{\"database\":\"tingshu_album\",\"table\":\"base_category1\",\"type\":\"insert\",\"ts\":1726741946,\"xid\":6478,\"commit\":true,\"data\":{\"id\":16,\"name\":\"maxwell\",\"order_num\":0,\"create_time\":\"2024-09-19 10:32:26\",\"update_time\":\"2024-09-19 10:32:26\",\"is_deleted\":0}}"
1) "message"
2) "maxwell"
3) "{\"database\":\"tingshu_album\",\"table\":\"base_category1\",\"type\":\"update\",\"ts\":1726742253,\"xid\":7197,\"commit\":true,\"data\":{\"id\":16,\"name\":\"plus\",\"order_num\":0,\"create_time\":\"2024-09-19 10:32:26\",\"update_time\":\"2024-09-19 10:37:33\",\"is_deleted\":0},\"old\":{\"name\":\"maxwell\",\"update_time\":\"2024-09-19 10:32:26\"}}"
1) "message"
2) "maxwell"
3) "{\"database\":\"tingshu_album\",\"table\":\"base_category1\",\"type\":\"delete\",\"ts\":1726742435,\"xid\":7622,\"commit\":true,\"data\":{\"id\":16,\"name\":\"plus\",\"order_num\":0,\"create_time\":\"2024-09-19 10:32:26\",\"update_time\":\"2024-09-19 10:37:33\",\"is_deleted\":0}}"

1.6、总结

相关文章:
maxwell 输出消息到 redis
文章目录 1、maxwell 输出消息到 redis1.1、启动一个Maxwell容器,它会连接到指定的MySQL数据库,捕获变更事件,并将这些事件以Redis发布/订阅的形式发送到指定的Redis服务器1.2、在已运行的 Redis 容器中执行 Redis 命令行界面(CLI…...
infoNCE损失和互信息的关系
文章目录 InfoNCE 损失与互信息的关系推导将相似度 sim ( q , x ) \text{sim}(q, x) sim(q,x) 看作是负的能量函数infoNCE和互信息的分母不同 InfoNCE 损失与互信息的关系推导 为了理解 InfoNCE 损失与互信息的关系,首先我们回顾两个公式的基本形式: 互…...
Java学习路线指南
目录 前言1. Java基础知识1.1 面向对象编程思想1.2 Java平台与JVM1.3 Java语言的核心概念 2. Java语法与基础实践2.1 数据类型与变量2.2 控制结构2.3 方法与函数2.4 数据结构与集合框架 3. Java进阶知识3.1 异步编程与多线程3.2 JVM调优与垃圾回收机制3.3 设计模式 4. 实践与项…...
在SpringCloud中实现服务间链路追踪
在微服务架构中,由于系统的复杂性和多样性,往往会涉及到多个服务之间的调用。当一个请求经过多个服务时,如果出现问题,我们希望能够快速定位问题所在。这就需要引入链路追踪机制,帮助我们定位问题。 Spring Cloud为我们…...
[数据集][目标检测]红外微小目标无人机直升机飞机飞鸟检测数据集VOC+YOLO格式7559张4类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):7559 标注数量(xml文件个数):7559 标注数量(txt文件个数):7559 标注…...
TS Vue项目中使用TypeScript
模块系统与命名空间 概念 模块化开发是目前最流行的组织代码方式,可以有效的解决代码之间的冲突与代码之间的依赖关系,模块系统一般视为“外部模块”,而命名空间一般视为“内部模块” 模块系统 TS中的模块化开发跟ES6中的模块化开发并没有…...
打工人、设计师必备的AI抠图工具
前言 你是否厌倦了繁琐的PS操作?是否在寻找一种快速、简便的抠图方法?别担心,AI技术已经为你准备好了解决方案。以下是9个令人惊叹的AI抠图工具,让你无需PS也能轻松获得专业级别的抠图效果。 1. 千鹿设计助手:EmGaur…...
MyBatis中一对多关系的两种处理方法
目录 1.多表联查(通过collection标签的ofType属性) 1)mapper 2)mapper.xml 3)测试代码 4)测试结果 2.分布查询(通过collection标签的select属性) 1)mapper 2)mapper.xml 3࿰…...
视频美颜SDK与直播美颜工具的实现原理与优化方案
本篇文章,小编将为大家详细讲解视频美颜SDK的实现原理,并提出优化方案。 一、视频美颜SDK的实现原理 1.图像采集与处理 2.人脸识别与关键点检测 3.美颜滤镜与特效处理 4.实时性与低延迟 二、直播美颜工具的实现原理 直播美颜工具与视频美颜SDK的…...
Linux 安装JDK8和卸载
目录 一、下载JDK8的rpm包 二、安装JDK 三、设置环境变量 Linux环境下安装JDK的方式有多种,可以通过rpm包、yum安装或者tar.gz压缩包。本章节会教大家通过前两者方式来安装JDK,压缩包的形式因为下载压缩包后上传到服务器环境下,将压缩包解…...
javascript 浏览器打印不同页面设置方向,横向纵向打印
// 在JavaScript中添加打印样式 const printStyle document.createElement(style); printStyle.innerHTML media print { page { size: landscape; }body { margin: 10mm; } }; document.head.appendChild(printStyle);// 触发打印 function printPage() {window.print(); }/…...
Maven 的多种打jar包方式详细介绍、区别及使用教程——附使用命令
文章目录 1. **标准 JAR 打包****打包方式****配置示例****使用方式****优点****缺点** 2. **可执行 JAR(Executable JAR)****打包方式****配置示例****使用方式****优点****缺点** 3. **Uber JAR(Fat JAR / Shadow JAR)****打包方…...
计算机毕业设计 基于协同过滤算法的个性化音乐推荐系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试
🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...
Arthas 全攻略:让调试变得简单
文章目录 一、简介二、命令列表 一、简介 注意 : 我安装的版本是:Arthas V3.7.2 官网:https://arthas.aliyun.com/doc/ 相关错误解决方案请看GitHub:https://github.com/alibaba/arthas/issues Alibaba开源的Java诊断工具。 从…...
icpc江西:L. campus(dij最短路)
题目 在樱花盛开的季节,西湖大学吸引了大量游客,这让胥胥非常烦恼。于是,他发明了一个神奇的按钮,按下按钮后,校园里所有的游客都会以光速从最近的大门离开学校。现在,胥胥非常好奇,游客们以光…...
日志收集工具 Fluentd vs Fluent Bit 的区别
参考链接: FluentdFluentd BitFluentd & Fluent Bit | Fluent Bit: Official Manual Fluentd 与 Fluent Bit 两者都是生产级遥测生态系统! 遥测数据处理可能很复杂,尤其是在大规模处理时。这就是创建 Fluentd 的原因。 Fluentd 不仅仅是…...
PostgreSQL技术内幕11:PostgreSQL事务原理解析-MVCC
文章目录 0.简介1.MVCC介绍2.MVCC常见的实现方式3.PG的MVCC实现3.1 可见性判断3.2 提交/取消 0.简介 本文主要介绍在事务模块中MVCC(多版本并发控制)常见的实现方式,优缺点以及PG事务模块中MVCC(多版本并发控制)的实现。 1.MVCC…...
Java-面向对象编程(基础部分)
类和对象的区别和联系 类:类是封装对象的属性和行为的载体,在Java语言中对象的属性以成员变量的形式存在,而对象的方法以成员方法的形式存在。 对象:Java是面向对象的程序设计语言,对象是由类抽象出来的,…...
SMS over IP原理
目录 1. 短消息业务的实现方式 2. 传统 CS 短消息业务中的发送与送达报告 3. MAP/CAP 信令常见消息 4. SMS over IP 特点概述 5. SMS over IP 中的主要流程 5.1 短消息注册流程(NR 或 LTE 接入) 5.2 短消息发送(MO)流程(NR 或 LTE 接入) 5.3 短消息接收(MT)流程(NR 或…...
Linux中使用Docker容器构建Tomcat容器完整教程
🏡作者主页:点击! 🐧Linux基础知识(初学):点击! 🐧Linux高级管理防护和群集专栏:点击! 🔐Linux中firewalld防火墙:点击! ⏰️创作…...
GLM-4.1V-9B-Base行业实践:农业病虫害田间照片识别与防治建议辅助
GLM-4.1V-9B-Base行业实践:农业病虫害田间照片识别与防治建议辅助 1. 农业场景下的视觉AI需求 在现代农业生产中,病虫害防治一直是困扰农户的核心问题。传统识别方法依赖农技人员现场勘查,效率低下且成本高昂。根据农业农村部数据ÿ…...
终极指南:Czkawka开源文件管理工具,5分钟解决存储空间不足难题
终极指南:Czkawka开源文件管理工具,5分钟解决存储空间不足难题 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka 你是否经常遇…...
Python: 多优化算法TSP求解方案,物流路径规划代码实践 - 附详尽注释及标准数据集
Python:模拟退火算法、蚁群算法、遗传算法、粒子群算法求解旅行商问题(TSP)的Python代码程序。 物流路径规划问题。 -- 数据集采用的tsplib标准数据集,可以根据自己需求修改城市坐标。 代码完整,注释详细,打印每次迭代结果&#x…...
COMSOL 6.1 激光粉末床熔融气孔缺陷演化仿真:开启微观世界的探索之旅
COMSOL 6.1 激光粉末床熔融气孔缺陷演化仿真案例模型 本案例选用层流和流体传热模块,采用水平集法,考虑材料的热物性以及激光加工过程中的马兰戈尼效应、熔融金属表面张力、反冲压力、相变潜热、热对流和热辐射,建立含气孔缺陷的二维数值仿真…...
为什么Python社区推荐用pipx替代pip?以virtualenv安装为例演示工作流
为什么Python开发者应该用pipx替代pip?以virtualenv为例的完整隔离方案 当你在Ubuntu终端输入pip install virtualenv时,那个刺眼的externally-managed-environment错误提示就像一堵墙——这不是技术故障,而是Python生态进化的重要路标。传统…...
从CFG到PDG:5个真实案例解析程序依赖图在安全审计中的应用
从CFG到PDG:5个真实案例解析程序依赖图在安全审计中的应用 在软件安全领域,漏洞检测的精准度往往取决于代码分析的深度。传统控制流图(CFG)虽然能描绘执行路径,却难以捕捉数据流转的潜在风险。程序依赖图(P…...
Java 无人图书借阅系统设计与完整源码实现
以下是一个基于Java的无人图书借阅系统的设计与完整源码实现方案,涵盖系统架构、核心模块、数据库设计、关键代码实现及部署建议:一、系统架构设计1. 分层架构表现层:用户端:微信小程序(UniApp开发) H5页面…...
鸿蒙与Android双端蓝牙开发避坑指南:定位权限、虚拟地址与厂商SDK那些事
鸿蒙与Android双端蓝牙开发实战:权限策略与真实地址获取全解析 当你的应用需要同时在鸿蒙和Android设备上稳定运行蓝牙功能时,系统差异就像一片雷区——Android 12的权限拆分、鸿蒙4.0的虚拟地址返回、不同版本间的API兼容性,每个环节都可能让…...
从零构建树莓派人脸识别门禁:硬件选型、环境部署与实战避坑
1. 硬件选型与采购清单 第一次玩树莓派人脸识别项目时,我在淘宝上花了整整三天对比各种硬件参数。当时最纠结的就是摄像头模块——普通USB摄像头才30块钱,而官方推荐的Raspberry Pi Camera Module V2要200多。后来实测发现,这差价真不能省。 …...
n600高效涡流选粉机设计【说明书 CAD图纸 开题报告 任务书 实习报告】
n600高效涡流选粉机作为粉体分级领域的核心设备,其设计聚焦于提升分级精度与处理效率。该设备通过优化涡流场分布与颗粒运动轨迹,实现微细粉体的高效分离。其核心作用在于利用离心力和气流的复合作用,使不同粒径的颗粒在旋转流场中产生差异化…...
