国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Maxwell+RabbitMq實現(xiàn)數(shù)據(jù)同步

這篇具有很好參考價值的文章主要介紹了Maxwell+RabbitMq實現(xiàn)數(shù)據(jù)同步。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Maxwell+RabbitMq實現(xiàn)數(shù)據(jù)同步

一、概述

Maxwell是由美國Zendesk開源,用Java編寫的MySQL等關(guān)系型數(shù)據(jù)庫的實時抓取軟件,能夠?qū)崟r抓取MySQL二進制日志binlog,并生成JSON格式的消息,作為生產(chǎn)者發(fā)送給kafaka、RabbitMQ、Redis等系統(tǒng)的應(yīng)用程序。常用的場景有:ETL、維護緩存、收集表級別的DML指標、增量數(shù)據(jù)同步到搜索引擎、切庫binlog回滾方案等

Maxwell的特點包括:

  1. **實時數(shù)據(jù)捕獲:**Maxwell可以實時的捕獲數(shù)據(jù)庫中的更改,包括插入、刪除、更新等操作
  2. **支持多種數(shù)據(jù)庫:**它可以與多種關(guān)系型數(shù)據(jù)庫系統(tǒng)(如 MySQL、PostgreSQL)集成
  3. **JSON格式輸出:**Maxwell通常以JSON格式輸出變更的數(shù)據(jù),易于處理和解析
  4. 可配置性: 用戶可以根據(jù)自己的需求配置Maxwell,包括選擇要捕獲的數(shù)據(jù)表,輸出目標等

Maxwell主要提供了以下功能:

  1. 支持 select * from table 的方式,進行全量數(shù)據(jù)初始化
  2. 支持在主庫發(fā)生failover(宕機)后,自動恢復(fù)binlog位置
  3. 支持斷點續(xù)傳,Maxwell會記錄上一次讀取binlog的位點信息,下一次繼續(xù)從該位點讀取數(shù)據(jù)
  4. 工作方式為:偽裝Salve,接收binlog events,然后根據(jù)schemas信息拼裝,可接收DDL、DML等各種事件

二、背景

由于我們所開發(fā)的物流系統(tǒng)A所使用的數(shù)據(jù)庫是MySQL,另一個系統(tǒng)B 使用的數(shù)據(jù)庫是Oracle,但是B系統(tǒng)需要獲取A系統(tǒng)的數(shù)據(jù)去完成一些必要的業(yè)務(wù),所以就需要將A系統(tǒng)的數(shù)據(jù)同步到B數(shù)據(jù)中,最開始用的是OGG 工具同步的,但是會存在一些性能問題,而且一旦MySQL庫發(fā)生故障或者觸發(fā)了主從切換,那么同步相關(guān)的數(shù)據(jù)表都需要進行相關(guān)的初始化操作。最開始考慮使用Canal進行同步的,但是Canal不能斷點續(xù)傳,所以最終使用Maxwell框架進行,于是使用下述架構(gòu)圖對系統(tǒng)間的數(shù)據(jù)同步進行改造:

Maxwell+RabbitMq實現(xiàn)數(shù)據(jù)同步,rabbitmq,分布式,數(shù)據(jù)倉庫,etl

三、工作原理

Maxwell的操作開銷很低,只需要有一個MySQL和一個可寫的后續(xù)地方即可,當(dāng)該應(yīng)用程序偽裝為MySQL的從機,讀取到MySQL主機的binlog日志后,以JSON格式寫入到Kafaka、Rabbit MQ等消息中間件,特點就是簡單易用,不需要編寫額外的客戶端,大大降低了開發(fā)成本。

Maxwell+RabbitMq實現(xiàn)數(shù)據(jù)同步,rabbitmq,分布式,數(shù)據(jù)倉庫,etl

  1. Master主庫將改變記錄,寫到二進制日志(binary log)
  2. Slave從庫向MySQL master發(fā)送dump協(xié)議,將Master主庫的binary log events拷貝到它的中繼日志(relay log)
  3. Slave從庫讀取并重做中繼日志中的事件,將改變的數(shù)據(jù)同步到自己的數(shù)據(jù)庫

四、Maxwell的下載與使用

4.1下載Maxwell

Maxwell官網(wǎng)地址: http://maxwells-daemon.io/

Github網(wǎng)址: https://github.com/zendesk/maxwell

本文使用的是Maxwell-1.29.2版本講述

下載地址: https://github.com/zendesk/maxwell/releases/download/v1.29.2/maxwell-1.29.2.tar.gz

#使用weget命令下載
cd /usr/local
mkdir software
cd /usr/local/softewre
wget https://github.com/zendesk/maxwell/releases/download/v1.29.2/maxwell-1.29.2.tar.gz

如果是通過下載地址鏈接下載的,完成后 通過XFTP工具上傳到/usr/local/softewre目錄下

Maxwell+RabbitMq實現(xiàn)數(shù)據(jù)同步,rabbitmq,分布式,數(shù)據(jù)倉庫,etl

4.2 解壓

#使用下述命令解壓壓縮包
tar zxvf maxwell-1.29.2.tar.gz

Maxwell+RabbitMq實現(xiàn)數(shù)據(jù)同步,rabbitmq,分布式,數(shù)據(jù)倉庫,etl

4.3 配置MySQL的binlog日志

#先使用這個命令查看MySQL是否開啟了binlog日志,如果Value列是OFF,代表未開啟binlog日志
SHOW VARIABLES LIKE 'log_bin';
#查看MySQL的binlog日志的格式,關(guān)注binlog_format
show global variables like "binlog%";

#使用下述命令開啟MySQL的 binlog日志
# 每個人安裝的MySQL的配置文件目錄不一樣,根據(jù)自己的MySQL安裝情況,找到自己的配置文件修改,我的是放在etc目錄下的
vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin #添加這一行就
binlog-format=ROW #選擇row模式
server_id=1 #隨機指定一個不能和其他集群中機器重名的字符串,如果只有一臺機器,那就可以隨便指定了
binlog-do-db=數(shù)據(jù)庫名稱 #啟用binlog的數(shù)據(jù)庫,需根據(jù)實際情況作出修改 默認全部開啟
#然后退出,保存

以下是我的MySQL配置文件,可供參考文章來源地址http://www.zghlxwxcb.cn/news/detail-828404.html

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data/mysql
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/data/mysql/mysql.err
pid-file=/usr/local/mysql/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
#skip-grant-tables

#開啟binlog日志相關(guān)配置
#服務(wù)ID
server-id=1
#binlog配置 只要配置了log_bin地址就會開啟
log_bin=mysql-bin
#規(guī)定binlog的格式,binlog有三種格式statement、row、mixad,默認使用statement,建議使用row格式
binlog_format=ROW
# 啟用binlog的數(shù)據(jù)庫,需根據(jù)實際情況作出修改 默認全部開啟
binlog-do-db=gzmpcli_db

到了這里,關(guān)于Maxwell+RabbitMq實現(xiàn)數(shù)據(jù)同步的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Rabbitmq----分布式場景下的應(yīng)用

    Rabbitmq----分布式場景下的應(yīng)用

    如果單機模式忘記也可以看看這個快速回顧rabbitmq,在做學(xué)習(xí) 消息隊列在使用過程中,面臨著很多實際問題需要思考: 消息從發(fā)送,到消費者接收,會經(jīng)理多個過程: 其中的每一步都可能導(dǎo)致消息丟失,常見的丟失原因包括: 發(fā)送時丟失: 生產(chǎn)者發(fā)送的消息未送達exchange 消

    2024年02月08日
    瀏覽(27)
  • RabbitMQ——解決分布式事務(wù)問題,RabbitMQ的重要作用之一?。?!通過可靠生產(chǎn)和可靠消費來完美解決!

    RabbitMQ——解決分布式事務(wù)問題,RabbitMQ的重要作用之一?。?!通過可靠生產(chǎn)和可靠消費來完美解決!

    分布式事務(wù)是指涉及多個獨立的計算機系統(tǒng)(也稱為節(jié)點或參與者)之間的事務(wù)處理。在分布式系統(tǒng)中,每個節(jié)點可能各自擁有自己的數(shù)據(jù)存儲和事務(wù)管理機制。分布式事務(wù)的目標是保證在跨多個節(jié)點執(zhí)行的一系列操作可以以一致和可靠的方式執(zhí)行和提交,即使在面對故障或

    2024年04月23日
    瀏覽(21)
  • 微服務(wù)學(xué)習(xí):SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    微服務(wù)學(xué)習(xí):SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    目錄 一、高級篇 二、面試篇 ==============實用篇============== day05-Elasticsearch01 1.初識elasticsearch 1.4.安裝es、kibana 1.4.1.部署單點es 1.4.2.部署kibana 1.4.3.安裝IK分詞器 1.4.4.總結(jié) 2.索引庫操作 2.1.mapping映射屬性 2.2.索引庫的CRUD 2.2.1.創(chuàng)建索引庫和映射 2.2.2.查詢索引庫 2.2.3.修改索引庫 2.

    2024年02月02日
    瀏覽(25)
  • 分布式消息隊列:Kafka vs RabbitMQ vs ActiveMQ

    在現(xiàn)代分布式系統(tǒng)中,消息隊列是一種常見的異步通信模式,它可以幫助系統(tǒng)處理高并發(fā)、高可用性以及容錯等問題。在這篇文章中,我們將深入探討三種流行的分布式消息隊列:Apache Kafka、RabbitMQ和ActiveMQ。我們將討論它們的核心概念、算法原理、特點以及使用場景。 隨著

    2024年02月02日
    瀏覽(19)
  • Python爬蟲分布式架構(gòu) - Redis/RabbitMQ工作流程介紹

    Python爬蟲分布式架構(gòu) - Redis/RabbitMQ工作流程介紹

    在大規(guī)模數(shù)據(jù)采集和處理任務(wù)中,使用分布式架構(gòu)可以提高效率和可擴展性。本文將介紹Python爬蟲分布式架構(gòu)中常用的消息隊列工具Redis和RabbitMQ的工作流程,幫助你理解分布式爬蟲的原理和應(yīng)用。 為什么需要分布式架構(gòu)? 在數(shù)據(jù)采集任務(wù)中,單機爬蟲可能面臨性能瓶頸和資

    2024年02月11日
    瀏覽(29)
  • RabbitMQ實現(xiàn)數(shù)據(jù)庫與ElasticSearch的數(shù)據(jù)同步和分享文件過期處理

    RabbitMQ實現(xiàn)數(shù)據(jù)庫與ElasticSearch的數(shù)據(jù)同步 | Hannya。-CSDN 企業(yè)級開發(fā)項目實戰(zhàn)——基于RabbitMQ實現(xiàn)數(shù)據(jù)庫、elasticsearch的數(shù)據(jù)同步 | 波總說先賺它一個小目標-CSDN SPringBoot集成RabbitMQ實現(xiàn)30秒過期刪除功能 | 軍大君-CSDN 當(dāng)進行文件上傳、文件創(chuàng)建、文件重命名等操作時: 通過Rabbit

    2024年02月09日
    瀏覽(18)
  • (黑馬出品_07)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    (黑馬出品_07)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    [此文檔是在心向陽光的天域的博客加了一些有助于自己的知識體系,也歡迎大家關(guān)注這個大佬的博客](https://blog.csdn.net/sinat_38316216/category_12263516.html) [是這個視頻](https://www.bilibili.com/video/BV1LQ4y127n4/?p=5spm_id_from=pageDrivervd_source=9beb0a2f0cec6f01c2433a881b54152c) 聚合 可以讓我們極其方便

    2024年03月12日
    瀏覽(15)
  • 微服務(wù)技術(shù)棧SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下

    微服務(wù)技術(shù)棧SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式(五):分布式搜索 ES-下

    聚合(aggregations)可以實現(xiàn)對文檔數(shù)據(jù)的統(tǒng)計、分析、運算。聚合常見的有三類: 桶(Bucket)聚合:用來對文檔做分組 TermAggregation:按照文檔字段值分組 Date Histogram:按照日期階梯分組,例如一周為一組,或者一月為一組 度量(Metric)聚合:用以計算一些值,比如:最大值

    2024年03月26日
    瀏覽(37)
  • 企業(yè)級開發(fā)項目實戰(zhàn)——基于RabbitMQ實現(xiàn)數(shù)據(jù)庫、elasticsearch的數(shù)據(jù)同步

    企業(yè)級開發(fā)項目實戰(zhàn)——基于RabbitMQ實現(xiàn)數(shù)據(jù)庫、elasticsearch的數(shù)據(jù)同步

    1、商品上架時:search-service新增商品到elasticsearch 2、商品下架時:search-service刪除elasticsearch中的商品 數(shù)據(jù)同步是希望,當(dāng)我們商品修改了數(shù)據(jù)庫中的商品信息,索引庫中的信息也會跟著改。在微服務(wù)中數(shù)據(jù)庫和索引庫是在兩個不同的服務(wù)中。如果,商品的服務(wù),向es的服務(wù)中

    2024年02月12日
    瀏覽(86)
  • 分布式搜索引擎(Elastic Search)+消息隊列(RabbitMQ)部署(商城4)

    分布式搜索引擎(Elastic Search)+消息隊列(RabbitMQ)部署(商城4)

    1、全文搜索 Elastic search可以用于實現(xiàn)全文搜索功能,例如商城中對商品搜索、搜索、分類搜索、訂單搜索、客戶搜索等。它支持復(fù)雜的查詢語句、中文分詞、近似搜索等功能,可以快速地搜索并返回匹配的結(jié)果。 2、日志分析 Elastic search可以用于實現(xiàn)實時日志分析,例

    2024年02月04日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包