1. 程式人生 > >開源基於Canal的開源增量資料訂閱&消費中介軟體

開源基於Canal的開源增量資料訂閱&消費中介軟體

CanalSync

canal 是阿里巴巴開源的一款基於資料庫增量日誌解析,提供增量資料訂閱&消費,目前主要支援了MySQL(也支援mariaDB)。

我開發的這個CanalSync專案 https://github.com/yuzd/CanalSync   ==>覺得不錯幫忙給個star謝謝

是基於canal-server之上的資料庫同步&消費中介軟體,

用於可快速搭建消費canal-server的專案。 目前我已實現並開源瞭如下:

  1. 資料消費傳輸到redis元件
  2. 資料消費傳輸到rabbitmq元件
  3. 資料消費傳輸到mysql資料庫元件

示意圖

Nuget:

1. 接收canal-server的訊息中介軟體:

Install-Package Canal.Server

2. 解析canal-server訊息轉出可執行sql的中介軟體:

Install-Package Canal.SqlParse

如何使用

如果你需要寫一個數據消費傳輸到XXXMQ,用不到反解析成sql的話,只需要引用 Canal.Server中介軟體。 如果你需要寫一個數據消費傳輸到XXXdb,得用到反解析sql中介軟體,需要同時引用Canal.Server 和 Canal.SqlParse 這2箇中間件。

Canal.Server 如何使用

  1. 引用 Canal.Server 並appsettings.json 配置canal-server的引數.如下圖:

引數說明: 

  1. 建立一個 消費類 必須要 實現: INotificationHandler 介面,例如叫TestHandler
 public class TestHandler:INotificationHandler<CanalBody>{
        public Task Handle(CanalBody notification)
        {
            //寫消費邏輯

            return Task.CompletedTask;;
        }
    }
    
  1. 在startUp 使用並註冊 該消費類
      //註冊了之後 canal-server有新的訊息就會進入到TestHandler的Handle方法
      services.AddCanalService(produce => produce.RegisterSingleton<TestHandler>());

Canal.SqlParse 如何使用

目前只實現瞭解析mysql的邏輯,未來會加入sqlserver的解析邏輯!!

      //註冊使用 connectionString是mysql的資料庫連線字串
      services.AddMysqlParseService(connectionString);
      
      // 計劃中還未實現
      //services.AddSqlserverParseService(connectionString);

在類的構造方法可注入:

如上圖,代表將canal-server的資料直接在另外的mysql庫裡面執行,等於2個mysql資料進行互相同步。

歐洲與中國的2個mysql庫 使用上述方法進行同步的測試

結果: 同步速度在100~200qps 

相關推薦

開源基於Canal開源增量資料訂閱&amp;消費中介軟體

CanalSync canal 是阿里巴巴開源的一款基於資料庫增量日誌解析,提供增量資料訂閱&消費,目前主要支援了MySQL(也支援mariaDB)。 我開發的這個CanalSync專案 https://github.com/yuzd/CanalSync   ==&g

談談對Canal增量資料訂閱消費 )的理解

概述 canal是阿里巴巴旗下的一款開源專案,純Java開發。基於資料庫增量日誌解析,提供增量資料訂閱&消費,目前主要支援了MySQL(也支援mariaDB)。 起源:早期,阿里巴巴B2B公司因為存在杭州和美國雙機房部署,存在跨機房同步的業務需求。不過早期的資料庫

Canal增量資料訂閱消費 )的理解及應用

canal是阿里巴巴旗下的一款開源專案,純Java開發。基於資料庫增量日誌解析,提供增量資料訂閱&消費,目前主要支援了MySQL(也支援mariaDB)。 起源:早期,阿里巴巴B2B公司因為存在杭州和美國雙機房部署,存在跨機房同步的業務需求。不過早期的資料庫同步業務,主要是基於trigger的方式獲

alibaba/canal 阿裏巴巴 mysql 數據庫 binlog 增量訂閱&amp;消費組件

原生 docs 進行 git 目前 cache ring mysql5 業務 基於日誌增量訂閱&消費支持的業務: 數據庫鏡像 數據庫實時備份 多級索引 (賣家和買家各自分庫索引) search build 業務cache刷新 價格變化等重要業務消息

資料的異構實戰(一) 基於canal進行日誌的訂閱和轉換

什麼是資料的異構處理。簡單說就是為了滿足我們業務的擴充套件性,將資料從某種特定的格式轉換到新的資料格式中來。 為什麼會有這種需求出現呢? 傳統的企業中,主要都是將資料儲存在了關係型資料庫中,例如說MySQL這種資料庫,但是為了滿足需求的擴充套件,查詢的維度會不斷地增加,那麼這個時候我們就需要做資料的異構處理了

基於canal的實時資料同步

適用場景 使用canal做資料備份而不用mysql自帶的主從備份的場景主要為: 跨資料庫的資料備份,例如mysql => oracle 資料異構,即對同一份資料做不同的分庫分表查詢。例如賣家和買家各自分庫索引 maven <dependen

增量資料同步中介軟體DataLink分享(已開源

專案介紹 名稱: DataLink['deitə liŋk]譯意: 資料鏈路,資料(自動)傳輸器語言: 純java開發(JDK1.8+)定位: 滿足各種異構資料來源之間的實時增量同步,一個分散式、可擴充套件的資料同步系統開源地址:https://github.com/ucarGroup/DataLink 此次

Ebay開源基於資料的視覺化框架:Pulsar Reporting

作者:汪明明,王巧玲 ebay又新添了一個開源專案PulsarReporting – 基於大資料的視覺化框架 Pulsar作為一個實時和近實時大資料分析處理系統,包含了Pulsar Pipeline和Pulsar Reporting. 在今年三月, eBay Puls

Canal資料同步的終極解決方案,阿里巴巴開源Canal框架當之無愧!!

## 寫在前面 > 在當今網際網路行業,尤其是現在分散式、微服務開發環境下,為了提高搜尋效率,以及搜尋的精準度,會大量使用Redis、Memcached等NoSQL資料庫,也會使用大量的Solr、Elasticsearch等全文檢索服務。那麼,這個時候,就會有一個問題需要我們來思考和解決:那就是資料同

Android6.0運行時權限(基於RxPermission開源庫)

art cti 將不 轉載 誤差 title 特殊 什麽是 roi 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 前言   在6.0以前的系統,都是權限一刀切的處理方式,只要用戶安裝,Manifest申請的權限都會被賦予,並且安裝後權限也撤銷不了。   And

0818基於360開源數據庫流量審計MySQL Sniffer

抓包 git clone com 時間 sta /var/ eth database 操作 開源數據庫流量審計MySQL Sniffer 我最推崇的數據庫安全產品就是基於流量的數據庫審計,因為它不需要更改網絡結構,並且也是最關鍵的是,不影響數據庫服務器性能,不用苦口婆心的勸

MySQL系列:基於binlog的增量訂閱消費(一)

clas 需要 val tro ali cat tor rip 變化   在一些業務場景中,像在數據分析中我們有時候需要捕獲數據變化(CDC);在數據審計中,我們也往往需要知道數據從這個點到另一個點的變化;同樣在實時分析中,我們有時候需要看到某個值得實時變化等。 要解決以上

轉: Tsung:開源多協議分布式負載&amp;壓力測試工具

phi mach level shel 同時 技術分享 event 工作 lib Main features High Performance: the load can be distributed on a cluster of client machines Mul

谷歌開源基於TensorFlow的通用框架AdaNet,快速且易於使用

Ensemble learning結合不同機器學習模型預測,被廣泛用於神經網路以實現最先進的效能,得益於豐富的歷史和理論保證,成功的挑戰,如Netflix獎和各種Kaggle競賽。然而,由於訓練時間長,它們在實踐中使用不多,機器學習模型候選者選擇需要其自己的領域專業知識。但隨著計算能力和專用深

MySQL開源資料傳輸中介軟體架構設計實踐

本文根據洪斌10月27日在「3306π」技術 Meetup - 武漢站現場演講內容整理而成。 主要內容: 本次分享將介紹目前資料遷移、資料同步、資料消費,多IDC架構中資料複製技術所面臨問題及現有的產品和方案,並分享新開源的能在異構資料儲存之間提供高效能和強大複製功能的DTLE相關技術

Keras之DNN:基於Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN實現分類預測概率——DIY二分類資料集&amp;預測新資料

#Keras之DNN:基於Keras(sigmoid+binary_crossentropy+predict_proba)利用DNN實現分類預測概率——DIY二分類資料集&預測新資料點 輸出結果   實現程式碼 # coding:utf-8 #Ke

網易雲輕舟微服務深度解讀:基於開源,強於開源

近日,由杭州市政府、賽迪以及網易主辦的“2018中國杭州雲創大會”於杭州國際博覽中心如期舉辦,大會以“開放·生態·賦能”為主題,匯聚行業領袖、技術大咖及產業鏈從業者。隨著數字經濟的時代到來,企業數字化創新對新一代雲端計算服務的需求日漸迫切。在當天下午的雲端計算專題會中,網易雲邀請了來自各行業的新老客

如何用雲伺服器一鍵搭建基於NextCloud開源應用的免費私有網盤

團隊資料沒地方存! 檔案傳輸既耗時又麻煩! 放在公有云盤上,又擔心資料洩露! 別擔心,本教程將手把手教你如何搭建屬於你的私有網盤NextCloud。 NextCloud是國外一個開源的雲盤應用,使用者可以免費下載安裝在伺服器等終端,隨時管理自己的資料(個人、創業團隊均可免費使用)。

Keras之DNN:基於Keras(sigmoid+linear+mse+predict)利用DNN實現迴歸預測——DIY多分類資料集&amp;預測新資料

Keras之DNN:基於Keras(sigmoid+linear+mse+predict)利用DNN實現迴歸預測——DIY多分類資料集&預測新資料點 輸出結果 實現程式碼 # coding:utf-8 Xa=[] Xb=[] for i in ra

基於 Multitype 開源庫封裝更好用的RecyclerView.Adapter

前言 MultiType 這個專案,至今 v3.x 穩定多時,考慮得非常多,但也做得非常剋制。原則一直是 直觀、靈活、可靠、簡單純粹(其中直觀和靈活是非常看重的)。 這是 MultiType 框架作者給出的專案簡述。 作為一個 RecyclerView 的 Adapter 框架,感覺這專案的設