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防火墙:点击! ⏰️创作…...

【机器学习】7 ——k近邻算法
机器学习7——k近邻 输入:实例的特征向量 输出:类别 懒惰学习(lazy learning)的代表算法 文章目录 机器学习7——k近邻1.k近邻2.模型——距离,k,分类规则2.1距离——相似程度的反映2.2 k值分类规则 算法实…...

2024.09.09 校招 实习 内推 面经
🛰️ :neituijunsir 交* 流*裙 ,内推/实习/校招汇总表格 1、校招 | 佑驾创新 MINIEYE 2025校园招聘正式启动(内推) 校招 | 佑驾创新 MINIEYE 2025校园招聘正式启动(内推) 2、校招 | 长安汽…...

浅谈Linux中的环回设备
什么是环回设备 环回设备(loop device) 是 Linux 系统中一种特殊的虚拟设备,它允许你将一个普通的文件当作块设备来操作。这意味着,借助环回设备,文件可以模拟为一个磁盘或分区,供系统读写。这种机制非常有…...

聚焦汽车智能化与电动化,亚洲领先的汽车工业技术博览会 2025年11月与您相约 AUTO TECH 华南展
抢占市场先机︱聚焦汽车智能化与电动化,亚洲领先的汽车工业技术博览会 2025年11月与您相约 AUTO TECH 华南展 随着汽车智能化与电动化的迅猛发展,汽车电子技术、车用功率半导体技术、智能座舱技术、轻量化技术/材料、软件定义汽车、EV/HV技术、测试测量技…...

(史上最全)线程池
线程池 文章目录 线程池一,前言二,线程池三,参数四,线程池的实现原理5.线程池的使用案例(自定义线程池)6.使用Executors 创建常见的功能线程池1.固定大小线程池2.定时线程3.可缓存线程池4.单线程化线程池 一,前言 虽然…...

【ShuQiHere】 支持向量机(SVM)详解:从理论到实践,这一篇就够了
📖 【ShuQiHere】 在现代机器学习课程中,支持向量机(SVM) 是不可或缺的一部分。它不仅在分类任务中有出色表现,还能灵活处理回归问题。尽管看似复杂,SVM 背后的思想却深刻而优雅。今天我们将全面探讨**支持…...

log4j2线程级动态日志级别
详见 参考 着重说明: DynamicThresholdFilter: 配置长这样:配置解释链接 <DynamicThresholdFilter key"logLevel" defaultThreshold"ERROR" onMatch"ACCEPT" onMismatch"DENY"><KeyVa…...

百度Android IM SDK组件能力建设及应用
作者 | 星途 导读 移动互联网时代,随着社交媒体、移动支付、线上购物等行业的快速发展,对即时通讯功能的需求不断增加。对于各APP而言,接入IM SDK(即时通讯软件开发工具包)能够大大降低开发成本、提高开发效率&#…...

CSS-Grid布局详解
前言 Grid 栅格布局 是 CSS 语言中非常强大的种布局,它提供了丰富的工具属性,可以轻松实现复杂且灵活的布局设计,因此想要完美使用CSS Grid 也有一定的难度和复杂性,我自己也是花了不少时间才真正掌握它的使用,在这篇…...

Give azure openai an encyclopedia of information
题意:给 Azure OpenAI 提供一部百科全书式的信息 问题背景: I am currently dabbling in the Azure OpenAI service. I want to take the default model and knowledge base and now add on to it my own unique information. So, for example, for mak…...