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,一经查实,立即删除!

相关文章

深入解析:批处理文件中echo命令的多功能用法

深入解析:批处理文件中echo命令的多功能用法 批处理文件,通常以.bat或.cmd为扩展名,在Windows操作系统中扮演着自动化脚本的角色。在这些脚本中,echo命令是使用最频繁的命令之一。本文将详细解释echo命令的多种用法,并…

记录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年提出,该算法模拟了河马在河流或池塘中…

“华为杯”第十四届中国研究生 数学建模竞赛-A题:无人机在抢险救灾中的优化运用

目录 摘 要: 1 问题重述 2 问题分析 3 问题假设 4 变量说明 5 模型的建立与求解 5.1 问题 1 的建立与求解 5.1.1 模型分析 5.1.2 问题 1 的建立 5.1.3.1 贪心算法 5.2 问题 2 的建立与求解 5.2.1 问题 2 的建立 5.2.2 问题 2 的求解 5.3 问题 3 的建立与求解 5.3.1 问题 3 的建…

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…

大数据面试必问的数据治理面试题大全及参考答案

什么是数据治理?它与数据管理的区别是什么? 数据治理是组织内数据的系统性管理策略,它确保数据在整个生命周期中的可用性、准确性、安全性和合规性。数据治理不仅关乎技术实施,更是关于组织结构、政策、流程和标准的建立,以指导数据的收集、存储、处理、保护和利用。它关…

代码随想录算法跟练 | Day10 | 栈与队列 Part01

个人博客主页:http://myblog.nxx.nx.cn 代码GitHub地址:https://github.com/nx-xn2002/Data_Structure.git Day10 232. 用栈实现队列 题目链接: https://leetcode.cn/problems/implement-queue-using-stacks/ 题目描述: 请你仅…

在 Debian 服务器上安装和配置 Apache Tomcat 的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 介绍 Apache Tomcat 是一个应用服务器,可用于向 web 用户提供 Java 应用程序。它是由 Sun Microsystems 开发的 Java Servle…

详解SpringSecurity中的Filter Chain

在Spring Security中,Filter Chain(过滤器链)是实现请求安全控制的核心。Spring Security的安全框架是建立在Servlet过滤器的基础上的,通过一系列过滤器来实现不同的安全特性,如认证、授权等。 什么是Filter Chain F…

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

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