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防火墙:点击! ⏰️创作…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
