MaxWell实时监控Mysql并把数据写入到Kafka主题中

配置mysql

启用MySQL Binlog

        MySQL服务器的Binlog默认是未开启的,如需进行同步,需要先进行开启

修改MySQL配置文件/etc/my.cnf

sudo vim/etc/my.cof

增加如下配置

注:MySQL Binlog模式

Statement-based基于语句,Binlog会记录所有写操作的SQL语句,包括insert、update、delete等。

优点:节省空间

缺点:有可能造成数据不一致,例如insert语句中包含now()函数。

Row-based基于行,Binlog会记录每次写操作后被操作行记录的变化。

优点:保持数据的绝对一致性。

缺点:占用较大空间。

mixed混合模式,默认是Statement-based,如果SQL语句可能导致数据不一致,就自动切换到Row-based

Maxwell要求Binlog采用Row-based模式

重启MySQL服务

注意:配置完成后一定要重启mysql,不然监控不了

sudo systemctl restart mysqld

创建Maxwell所需数据库和用户

Maxwell需要在MySQL中存储其运行过程中的所需的一些数据,包括binlog同步的断点位置(Maxwell支持断点续传)等等,故需要在MySQL为Maxwell创建数据库及用户

创建数据库

CREATE DATABASE maxwell;

创建Maxwell用户并赋予其必要权限

CREATE USER 'maxwell'@'%' IDENTIFIED BY 'maxwell';

GRANT ALL ON maxwell.* TO 'maxwell'@'%';

GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';

创建完成后会在mysql中显示这个库

配置maxwell

修改Maxwell配置文件名称

cd /opt/module/maxwell

cp config.properties.example config.PROPERTIES

修改Maxwell配置文件

Maxwell的使用

启动Kafka集群

        若Maxwell发送数据的目的地为Kafka集群,则需要先确保Kafka集群为启动状态

Maxwell启停

启动Maxwell

opt/module/maxwell/bin/maxwell --config /opt/module/maxwell/config.properties --daemon

停止Maxwell

ps -ef | grep com.zendesk.maxwell.Maxwell | grep -v grep | awk '{print $2}' | xargs kill -9

Maxwell启停脚本

赋予权限

chmod +x mxw.sh    

启动Maxwell    

mxw.sh start

停止Maxwell

mxw.sh stop

增量数据同步

启动zookeeper,kafka,maxwell。

启动Kafka消费者

kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic topic_db

只要没有配置错,你的mysql中有变更数据,maxwell会实时监控并写入到kafka的主题中

历史数据全量同步

        现在已经实现了使用Maxwell实时增量同步MySQL变更数据的功能。但有时只有增量数据是不够的,我们可能需要使用到MySQL数据库中从历史至今的一个完整的数据集。这就需要我们在进行增量同步之前,先进行一次历史数据的全量同步。这样就能保证得到一个完整的数据集。

Maxwell-bootstrap

        Maxwell提供了bootstrap功能来进行历史数据的全量同步,命令如下

 /opt/module/maxwell/bin/maxwell-bootstrap --database 你的库名 --table 你的表名 --config /opt/module/maxwell/config.properties

bootstrap数据格式

采用bootstrap方式同步的输出数据格式如下:

{

    "database": "fooDB",

    "table": "barTable",

    "type": "bootstrap-start",

    "ts": 1450557744,

    "data": {}

}

{

    "database": "fooDB",

    "table": "barTable",

    "type": "bootstrap-insert",

    "ts": 1450557744,

    "data": {

        "txt": "hello"

    }

}

{

    "database": "fooDB",

    "table": "barTable",

    "type": "bootstrap-insert",

    "ts": 1450557744,

    "data": {

        "txt": "bootstrap!"

    }

}

{

    "database": "fooDB",

    "table": "barTable",

    "type": "bootstrap-complete",

    "ts": 1450557744,

    "data": {}

}

注意事项:

(1)第一条type为bootstrap-start和最后一条type为bootstrap-complete的数据,是bootstrap开始和结束的标志,不包含数据,中间的type为bootstrap-insert的数据才包含数据。

(2)一次bootstrap输出的所有记录的ts都相同,为bootstrap开始的时间

全量同步脚本

在命令行使用全量同步有点麻烦,我们可以写一个脚本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/35334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录bug导致测试部署出错,但是本地环境启动正常。雪花算法使用中报错。并带有源码分析。

bug出现背景 集群产生的日志要求traceId不重复,使用雪花算法生成traceId 报错形式如下 为什么本地无法复现测试环境的bug 因为bug的出现本身就是概率性的事件 代码如下 public static Long workId Long.parseLong(String.valueOf(NetUtil.getLocalhostStr().ha…

故障诊断 | HO-VMD-TCN河马优化算法优化变分模态分解时间卷积神经网络故障诊断模型

效果一览 文章概述 故障诊断 | HO-VMD-TCN河马优化算法优化变分模态分解时间卷积神经网络故障诊断模型!河马优化算法(Hippopotamus optimization algorithm,HO)由Amiri等人于2024年提出,该算法模拟了河马在河流或池塘中…

21 Shell编程之正则表达式与文本处理器

目录 21.1 正则表达式 21.1.1 正则表达式概述 21.1.2 基础正则表达式 21.1.3 扩展正则表达式 21.2 文本处理器 21.2.1 sed工具 21.2.2 awk工具 21.2.3 sort工具 21.2.4 uniq工具 21.1 正则表达式 21.1.1 正则表达式概述 1.正则表达式概述 正则表达式又称正规表达式、常规表达…

离线部署OpenIM

目录 1.提取相关安装包和镜像 2.安装docker和docker-compose 3.依次导入镜像 4.解压安装包 5.执行安装命令 6.PC Web 验证 7.开放端口 7.1IM 端口 7.2Chat 端口 7.3 PC Web 及管理后台前端资源端口 “如果您在解决类似问题时也遇到了困难,希望我的经验分享…

HTML+CSS 彩色浮雕按钮

效果演示 实现了一个彩色按钮特效,包括一个按钮(button)和一个前景色(::before)。按钮具有四种不同的颜色,当鼠标悬停在按钮上时,前景色会出现渐变效果,并且按钮的颜色、文本阴影和边…

Windows 获取打印机及端口号方法 (C#)

1. 打开注册表编辑器 regedit 2.选择如下配置 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Device 3. 代码 C# using System; using Microsoft.Win32;class Program {static void Main(){string registryPath "SOFTWARE\Microsoft\Windows …

优选算法2

五、位运算 常见位运算总结 &:有0就是0; |:有1就是1 ^:相同为0,相异就是1/无进位相加 给定一个数n,确定它的二进制表示中的第x位是0还是1:二进制中权值最小的是第0位,所以int整型是从第0位到…

坚持100天学习打卡Day1

1.大小端 2.引用的本质 及 深拷贝与浅拷贝 3.初始化列表方式 4.类对象作为类成员 5.静态成员 static

vue3使用v-html实现文本关键词变色

首先看应用场景 这有一段文本内容,是项目的简介,想要实现将文本中的关键词进行变色处理 有如下关键词 实现思路 遍历文本内容,找到关键词,并使用某种方法更改其字体样式。经过搜寻资料决定采用v-html实现,但是v-h…

解决pycharm安装dlib失败的问题

今天使用pycharm来学习opencv人脸识别库face-recognition的时候出现了一点小问题,在pycharm中直接安装face-recognition会失败,说是因为缺少依赖库dlib,但是直接使用pycharm安装dlib库也有问题,不知道大家遇到没有 错误提示 note…

【深度学习】菜品目标检测软件系统

深度学习类文章回顾 【YOLO深度学习系列】图像分类、物体检测、实例分割、物体追踪、姿态估计、定向边框检测演示系统【含源码】 【深度学习】物体检测/实例分割/物体追踪/姿态估计/定向边框/图像分类检测演示系统【含源码】 【深度学习】YOLOV8数据标注及模型训练方法整体流程…

AI智能写作工具,AI写作助手大全

随着人工智能技术的快速发展,AI智能写作工具助手已成为学术研究、内容创作和商业文案等领域的重要辅助工具。它们不仅能够提高写作效率,还能激发创意灵感,为各行各业的专业人士提供了强大的支持。下面小编将为大家全面介绍目前市场上备受瞩目…

[C#][opencvsharp]C#使用opencvsharp进行年龄和性别预测支持视频图片检测

使用 OpenCVSharp 来调用 age_net.caffemodel 和 gender_net.caffemodel 来进行性别和年龄预测涉及几个步骤。以下是一个简化的流程和示例文案: 1. 准备工作 确保你已经安装了 OpenCVSharp 和相关的依赖项。确保你有 age_net.prototxt、age_net.caffemodel、gende…

正版软件 | 『闪点清单』— 您的智能悬浮任务管理专家

在繁忙的日常中,我们经常需要一个既能随时提醒,又不会打扰我们的待办事项管理工具。『闪点清单』,一款简约而不简单的悬浮清单软件,为您带来全新的任务管理体验。 设计简约,功能强大 『闪点清单』以其简约的设计和强大…

CVPR讲座总结(二)-探索图像生成基础模型的最新进展探索多模态代理的最新进展:从视频理解到可操作代理

引言 在CVPR24上的教程中,微软高级研究员Linjie Li为我们带来了多模态代理的深入探索。这些代理通过整合多模态专家和大语言模型(LLM)来增强感知、理解和生成能力。本文总结了Linjie Li的讲座内容,重点介绍了多模态记忆、可操作代…

供应链攻击是什么?

随着企业对技术和连接性的依赖日益增加,以及对第三方的普遍依赖,供应链攻击变得越来越普遍。这些攻击旨在通过供应商和商业伙伴损害企业。 供应链攻击可能对企业和组织构成重大威胁,因为它们可能危及它们的安全以及向客户提供的产品和服务的…

《昇思25天学习打卡营第2天 | 张量 Tensor》

《昇思25天学习打卡营第2天 | 张量 Tensor》 《昇思25天学习打卡营第2天 | 张量 Tensor》 《昇思25天学习打卡营第2天 | 张量 Tensor》什么是张量(Tensor)张量的创建方式根据数据直接生成从NumPy数组生成使用init初始化器构造张量继承另一个张量的属性&a…

unity 导入的模型设置讲解

咱们先讲Model这一栏 Model Scene:场景级属性,例如是否导入灯光和照相机,以及使用什么比例因子。 Scale Factor:缩放因子(也就是模型导入后大小如果小了或者大了在这里直接改是相当于该模型的大小的,而且在…

浏览器扩展V3开发系列之 chrome.runtime 的用法和案例

【作者主页】:小鱼神1024 【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 chrome.runtime API 提供了一系列的方法和事件,可以通过它来管理和维护 Chrome 扩展的生命…

什么!你还不会Redis?跟着我讲透Redis【上篇之初识与安装】

1 NoSQL是什么 1.1 NoSQL数据库概述 NoSQL(NoSQL Not Only SQL ),意即”不仅仅是SQL“,泛指非关系型的数据库。 NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。 不遵循SQL标准。不支持A…