国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

上饒建設(shè)培訓(xùn)中心網(wǎng)站網(wǎng)絡(luò)營(yíng)銷公司熱線電話

上饒建設(shè)培訓(xùn)中心網(wǎng)站,網(wǎng)絡(luò)營(yíng)銷公司熱線電話,wordpress最新手冊(cè),免費(fèi)模版網(wǎng)文章目錄 一、canal 概述1.2 什么是 canal2.3 canal 的所有組件 二、canal 工作原理2.1 MySQL 主備復(fù)制原理2.2 canal 工作原理 三、canal.server 組件3.1 canal.server 的架構(gòu)3.2 instance 模塊組成部分 四、canal.client 組件4.1 類設(shè)計(jì)4.2 server/clinet 交互協(xié)議4.3 使用案…

文章目錄

    • 一、canal 概述
      • 1.2 什么是 canal
      • 2.3 canal 的所有組件
    • 二、canal 工作原理
      • 2.1 MySQL 主備復(fù)制原理
      • 2.2 canal 工作原理
    • 三、canal.server 組件
      • 3.1 canal.server 的架構(gòu)
      • 3.2 instance 模塊組成部分
    • 四、canal.client 組件
      • 4.1 類設(shè)計(jì)
      • 4.2 server/clinet 交互協(xié)議
      • 4.3 使用案例
    • 參考資料

一、canal 概述

1.2 什么是 canal

canal 主要用途是基于 MySQL 數(shù)據(jù)庫(kù)增量日志解析,提供增量數(shù)據(jù)訂閱和消費(fèi)。

基于日志增量訂閱和消費(fèi)的業(yè)務(wù)包括

  • 數(shù)據(jù)庫(kù)鏡像
  • 數(shù)據(jù)庫(kù)實(shí)時(shí)備份
  • 索引構(gòu)建和實(shí)時(shí)維護(hù)(拆分異構(gòu)索引、倒排索引等)
  • 業(yè)務(wù) cache 刷新
  • 帶業(yè)務(wù)邏輯的增量數(shù)據(jù)處理

在這里插入圖片描述

2.3 canal 的所有組件

Canal 的架構(gòu)包括多個(gè)組件,每個(gè)組件承擔(dān)不同的功能,以便實(shí)現(xiàn)高效的數(shù)據(jù)同步和管理。

  • canal.server:負(fù)責(zé)處理與數(shù)據(jù)源的連接和數(shù)據(jù)的采集。作為 Canal 的核心,server 組件解析從數(shù)據(jù)庫(kù)獲取的變更數(shù)據(jù),并將其推送到下游。它支持多種數(shù)據(jù)源,并管理多個(gè)實(shí)例的運(yùn)行。
  • canal.client:提供了與 canal server 進(jìn)行通信的客戶端接口??蛻舳丝梢杂嗛喬囟ǖ臄?shù)據(jù)變更事件,并根據(jù)業(yè)務(wù)需求處理這些事件。Canal 客戶端通常用于集成其他應(yīng)用程序,支持多種編程語(yǔ)言,如 Java、Python 等,方便用戶進(jìn)行數(shù)據(jù)消費(fèi)和業(yè)務(wù)邏輯處理。
  • canal-admin :為 canal 提供整體配置管理和節(jié)點(diǎn)運(yùn)維功能的組件,具有友好的 Web UI 操作界面。通過(guò) canal-admin,用戶可以輕松管理 Canal 實(shí)例的配置、監(jiān)控實(shí)例狀態(tài)、執(zhí)行增量訂閱等操作。它降低了運(yùn)維的復(fù)雜性,使得更多用戶能夠快速、安全地操作 canal。

二、canal 工作原理

canal 的工作原理主要是將自己偽裝成數(shù)據(jù)庫(kù)主從同步中的從節(jié)點(diǎn)。

2.1 MySQL 主備復(fù)制原理

  • MySQL master 將數(shù)據(jù)變更寫入二進(jìn)制日志( binary log, 其中記錄叫做二進(jìn)制日志事件binary log events,可以通過(guò) show binlog events 進(jìn)行查看)
  • MySQL slave 將 master 的 binary log events 拷貝到它的中繼日志(relay log)
  • MySQL slave 重放 relay log 中事件,將數(shù)據(jù)變更反映它自己的數(shù)據(jù)

具體細(xì)節(jié)查看 MySQL 日志:主從復(fù)制是怎么實(shí)現(xiàn)

2.2 canal 工作原理

  • canal 模擬 MySQL slave 的交互協(xié)議,偽裝自己為 MySQL slave ,向 MySQL master 發(fā)送dump 協(xié)議
  • MySQL master 收到 dump 請(qǐng)求,開(kāi)始推送 binary log 給 slave (即 canal )
  • canal 解析 binary log 對(duì)象(原始為 byte 流)

三、canal.server 組件

3.1 canal.server 的架構(gòu)

在 canal.server 的架構(gòu)中,serverinstance 是兩個(gè)重要的概念:

  • server:代表一個(gè) Canal 運(yùn)行實(shí)例,通常對(duì)應(yīng)于一個(gè) JVM。它負(fù)責(zé)管理和運(yùn)行整個(gè) Canal 服務(wù),處理數(shù)據(jù)源的接入、數(shù)據(jù)解析、過(guò)濾和存儲(chǔ)等任務(wù)。
  • instance:對(duì)應(yīng)于一個(gè)數(shù)據(jù)隊(duì)列,負(fù)責(zé)從特定數(shù)據(jù)源(如 MySQL)讀取變更數(shù)據(jù)并將其推送到下游消費(fèi)者。每個(gè) instance 獨(dú)立運(yùn)行,管理特定的數(shù)據(jù)庫(kù)連接和數(shù)據(jù)流。

在實(shí)際使用中,通常在 /canal/conf/canal.properties 中定義全局的環(huán)境和配置,而在 /canal/conf/example/instance.properties 中定義具體的數(shù)據(jù)庫(kù)實(shí)例的連接信息和監(jiān)控規(guī)則。

注意,example 是一個(gè) instance 的名字。

在這里插入圖片描述

3.2 instance 模塊組成部分

instance 模塊是其核心部分,負(fù)責(zé)與數(shù)據(jù)源的交互和數(shù)據(jù)的處理:

  • EventParser:負(fù)責(zé)數(shù)據(jù)源的接入,模擬從主數(shù)據(jù)庫(kù)(master)到從數(shù)據(jù)庫(kù)(slave)的協(xié)議交互,并解析從數(shù)據(jù)庫(kù)獲取的變更數(shù)據(jù)。

  • EventSink:充當(dāng)解析器(Parser)和存儲(chǔ)(Store)之間的連接器,負(fù)責(zé)數(shù)據(jù)的過(guò)濾、加工和分發(fā)。它將解析后的數(shù)據(jù)根據(jù)配置進(jìn)行處理后,推送到目標(biāo)存儲(chǔ)或下游消費(fèi)者。

  • EventStore:負(fù)責(zé)將數(shù)據(jù)持久化存儲(chǔ),維護(hù)已消費(fèi)的數(shù)據(jù)記錄,以支持增量訂閱和歷史數(shù)據(jù)的查詢。

  • MetaManager:負(fù)責(zé)增量訂閱和消費(fèi)信息的管理,維護(hù)每個(gè)實(shí)例的狀態(tài),包括已消費(fèi)的位置、訂閱信息等。

四、canal.client 組件

本節(jié)內(nèi)容來(lái)源于 ClientAPI · alibaba/canal Wiki

4.1 類設(shè)計(jì)

canal client 提供了一套接口,用于與 canal server 進(jìn)行交互和數(shù)據(jù)消費(fèi)。以下是主要 API 組件的詳細(xì)說(shuō)明

  • ClientIdentity: canal client 和 server 交互之間的身份標(biāo)識(shí)。
  • CanalConnector:提供兩種 connector 的實(shí)現(xiàn)。
    • SimpleCanalConnector 針對(duì)簡(jiǎn)單的 IP 直連模式,適合單個(gè)客戶端與單個(gè)服務(wù)器的連接。
    • ClusterCanalConnector 針對(duì)多 IP 的模式,可依賴 CanalNodeAccessStrategy 進(jìn)行 failover 控制。
  • CanalNodeAccessStrategy:提供提供兩種 failover 的實(shí)現(xiàn)。
    • SimpleNodeAccessStrategy 針對(duì)給定的初始 IP 列表進(jìn)行故障轉(zhuǎn)移選擇,適用于簡(jiǎn)單的連接場(chǎng)景。
    • ClusterNodeAccessStrategy 基于 Zookeeper 上的集群節(jié)點(diǎn)動(dòng)態(tài)選擇正在運(yùn)行的 canal server,適用于更復(fù)雜的分布式環(huán)境。
  • ClientRunningMonitor/ClientRunningListener/ClientRunningData: client running 相關(guān)控制,主要為解決 client 自身的 failover 機(jī)制。

在這里插入圖片描述

4.2 server/clinet 交互協(xié)議

在這里插入圖片描述

4.3 使用案例

具體使用案例查看 ClientExample · alibaba/canal Wiki

參考資料

Home · alibaba/canal Wiki

Canal——原理架構(gòu)及應(yīng)用場(chǎng)景 - 曹偉雄 - 博客園

http://aloenet.com.cn/news/32725.html

相關(guān)文章:

  • 中國(guó)十大電商做的好的網(wǎng)站seo推廣是什么意懌
  • 專業(yè)微信網(wǎng)站建設(shè)公司首選公司哪家好互聯(lián)網(wǎng)推廣公司排名
  • 建網(wǎng)站前期設(shè)計(jì)用那軟件花都網(wǎng)絡(luò)推廣seo公司
  • wordpress注冊(cè)去掉電子郵件上海網(wǎng)站seo診斷
  • 做網(wǎng)站后臺(tái)域名備案官網(wǎng)
  • 鄭州專業(yè)網(wǎng)站制作服務(wù)報(bào)價(jià)濟(jì)南網(wǎng)絡(luò)推廣公司電話
  • 寧波網(wǎng)站建設(shè)在線智慧軟文網(wǎng)站
  • 南昌有限公司 網(wǎng)站灰色詞排名代做
  • wordpress地址和站點(diǎn)url金華百度seo
  • python做網(wǎng)站快么鄭州外貿(mào)網(wǎng)站推廣
  • 百度做網(wǎng)站的電話百度置頂廣告多少錢
  • 德陽(yáng)哪里有做網(wǎng)站的windows優(yōu)化大師是官方的嗎
  • 網(wǎng)站微信建設(shè)運(yùn)營(yíng)經(jīng)驗(yàn)分享沈陽(yáng)疫情最新消息
  • 鄭州做裝飾的網(wǎng)站友情鏈接交易網(wǎng)
  • 公司做網(wǎng)站讓我們銷售百度點(diǎn)擊排名收費(fèi)軟件
  • 重慶建設(shè)安全員信息網(wǎng)站seo實(shí)訓(xùn)報(bào)告
  • 自己做投票網(wǎng)站怎么弄公司域名查詢官網(wǎng)
  • 重慶網(wǎng)站制作那家好愛(ài)站小工具
  • 2023年電腦端網(wǎng)游濟(jì)南百度推廣優(yōu)化
  • 西安哪里做網(wǎng)站最大鄭州seo顧問(wèn)
  • 國(guó)內(nèi)做批發(fā)的網(wǎng)站百度醫(yī)生在線問(wèn)診
  • 網(wǎng)站集約化建設(shè)紀(jì)要網(wǎng)站案例分析
  • wordpress關(guān)注微信登陸廈門seo總部電話
  • 開(kāi)發(fā)網(wǎng)站的步驟百度電腦版下載官網(wǎng)
  • 柳州做網(wǎng)站有kv網(wǎng)絡(luò)營(yíng)銷八大職能
  • 網(wǎng)站不備案可以做淘寶客嗎營(yíng)銷推廣公司案例
  • 網(wǎng)站設(shè)計(jì)精美案例電腦培訓(xùn)學(xué)校哪家好
  • 修改wordpress版權(quán)搜索引擎優(yōu)化是指
  • 建企業(yè)網(wǎng)站哪家好百度云搜索引擎入口
  • 邢臺(tái)企業(yè)做網(wǎng)站搜索關(guān)鍵詞的網(wǎng)站