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.pswp.cn/diannao/35334.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/35334.shtml
英文地址,請注明出處:http://en.pswp.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…

正版軟件 | 『閃點清單』— 您的智能懸浮任務管理專家

在繁忙的日常中,我們經常需要一個既能隨時提醒,又不會打擾我們的待辦事項管理工具。『閃點清單』,一款簡約而不簡單的懸浮清單軟件,為您帶來全新的任務管理體驗。 設計簡約,功能強大 『閃點清單』以其簡約的設計和強大…