Canal上手指南:mysql到kafka
1. 準備工作
1.1. MySQL賬號
根據Canal官方說明,需要申請一個MySQL資料庫的賬號,該賬號具有如下許可權
CREATE USER canal IDENTIFIED BY 'canal';
-- 至少具有如下許可權
GRANT SELECT, SHOW VIEW, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ; -- 需要具有SHOW VIEW 許可權
FLUSH PRIVILEGES;
並保證目標主機與MySQL資料庫之間3306
1.2. 安裝Java
由於是一個Java程式,因此需要在目標機上事先安裝JDK。
1.3. Kafka
本專案目的是將Binlog資料發往Kafka,因此需要一個Kafka叢集或單機節點,並保證9092埠的連通性。
1.4. Zookeeper
如果啟用高可用,或將元資料儲存在Zookeeper上,那麼需要保證目標主機與ZK叢集之間2181埠的連通性。
2. 配置工作
配置Canal是一個不斷摸索的過程,根據Git上面的文件,以及專案原始碼,如果有問題出現,基本上可以定位到問題出處。雖然Git上面有比較詳盡的說明,但在測試時,還是會遇到各種各樣的問題。這就需要充分理解相關配置引數的含義,以及引數之間的搭配,才能更好地使用這個工具。
2.1. canal說明
需要特別注意以下幾個配置內容
## 配置ZK地址:如果需要啟用高可用,目前高可用僅支援同時一個節點工作
canal.zkServers=
## 配置sink方式:目前支援以下三種
### tcp, kafka, RocketMQ
canal.serverMode=
## 併發配置:這裡是二選一
### 1. 單執行緒處理
canal.instance.parser.parallel = false
### 2. 處理過程如下[原始碼]
### * 1. 網路接收 (單執行緒)
### * 2. 事件基本解析 (單執行緒,事件型別、DDL解析構造TableMeta、維護位點資訊)
### * 3. 事件深度解析 (多執行緒, DML事件資料的完整解析)
### * 4. 投遞到store (單執行緒)
canal.instance.parser.parallel = true
canal.instance.parser.parallelThreadSize = 6
canal.instance.parser.parallelBufferSize = 4096
## MQ配置:配置Kafka的伺服器: “IP1:9092,IP2:9092,,,”
canal.mq.servers=
## MQ配置:設定訊息序列化方式,true--json, false--protobuf
canal.mq.flatMessage=true
## MQ設定
canal.mq.acks=
canal.mq.lingerMs=
2.2. instance說明
Instance中需要注意的配置專案如下
## GTID設定:如果配置為true,那麼需要給出:canal.instance.master.gtid=
## 一般設定為false,小的專案就夠了:自動尋找,以及記憶Binlog位置
canal.instance.gtidon=false
## 設定源資料庫:使用者名稱、密碼、預設資料庫
canal.instance.dbUsername=
canal.instance.dbPassword=
canal.instance.defaultDatabaseName =
## Kafka設定
canal.mq.topic=
## 二選一
## 1. 配置partition數量,並配合對映規則:實際程式碼中,優先判斷該種情況
canal.mq.partitionsNum=3
canal.mq.partitionHash=mytest.person:id,mytest.role:id
## 2. 配置為0,或不配置
canal.mq.partition=
3. 注意事項
3.1. 預設資料庫
在實際測試中,這個預設資料庫的設定不知道起到了什麼作用
canal.instance.defaultDatabaseName =
在獲取MySQL Binlog時,這個MySQL例項的Binlog都獲取到了,並傳輸到了Kafka中。
3.2. 配置錯誤
在配置mq.yml檔案時,遇到了一個基本常識錯誤
## 錯誤配置
canalDestinations:
- canalDestination: example
topic:example
partition:0
## 正確配置
canalDestinations:
- canalDestination: example
topic: example
partition: 0
即在YML配置中,基本上是這種模式的[Key: value]。
博主在使用的時候,場景比較簡單,配置也較為簡單,目標僅是讓整個流程跑起來,對於其他的引數未做詳細的瞭解以及探究,其中不免有錯誤之處,歡迎留言指正。
相關推薦
Canal上手指南:mysql到kafka
1. 準備工作 1.1. MySQL賬號 根據Canal官方說明,需要申請一個MySQL資料庫的賬號,該賬號具有如下許可權 CREATE USER canal IDENTIFIED BY 'canal'; -- 至少具有如下許可權 GRANT SELECT,
RKE快速上手指南:開源的輕量級K8S安裝程式_Kubernetes中文社群
安裝Kubernetes是公認的對運維和DevOps而言最棘手的問題之一。因為Kubernetes可以在各種平臺和作業系統上執行,所以在安裝過程中需要考慮很多因素。 在這篇文章中,我將介紹一種新的、用於在裸機、虛擬機器、公私有云上安裝Kubernetes的輕量級工具——Rancher Kube
Android SDK上手指南:使用者互動
在這篇教程中,我們將對之前所新增的Button元素進行設定以實現對使用者點選的檢測與響應。為了達成這一目標,我們需要在應用程式的主Activity類中略微涉及Java程式設計內容。如果大家在Java開發方面的經驗不太豐富也沒必要擔心,只要按步驟進行即可完成學習。我們將在本
Android SDK上手指南:使用者介面設計
內容簡介 我們將為應用程式專案添加布局方案,在這方面XML與Eclipse ADT介面將成為工作中的得力助手——不過在後面兩節中還會用到一部分Java開發知識。XML與Java在Android平臺的開發工作當中可謂無處不在,如果大家對二者還缺乏基本的瞭解,請儘快想辦法補
最詳盡使用指南:超快上手Jupyter Notebook
目錄 簡介 安裝與執行 主面板(Notebook Dashboard) 編輯介面(Notebook Editor) 單元(Cell) 魔法函式 其他 一、簡介 Jupyter Notebook是一個開源的Web應用程式,允許使用者建立和共享包含程式碼、方程式、
能動手絕不多說:開源評論系統remark42上手指南
# 能動手絕不多說:開源評論系統 remark42 上手指南 ## 前言 寫部落格嘛, 誰不喜歡自己倒騰一下呢。 從自建系統到 Github Page, 從 [Jekyll](http://jekyllcn.com/) 到 [Hexo](https://hexo.io/zh-cn/index.htm
webpack構建工具快速上手指南
pre 去掉空格 spa net 例如 模式 面板 hand 根據 最近在研究react項目,接觸到webpack打包工具。剛接觸的時候一臉茫然,經過最近的學習,下面我來帶大家開啟webpack入門之旅。 webpack是什麽 webpack是近期最火的一款模塊加載器兼
新手指南:DVWA-1.9全級別教程之SQL Injection
escape index.php 偽造 掌握 post 數字型註入 初學者 hsl 攻擊 *本文原創作者:lonehand,轉載須註明來自FreeBuf.COM 目前,最新的DVWA已經更新到1.9版本(http://www.dvwa.co.uk/),而網上的教程大多停
Git工作流指南:Gitflow工作流
lee 相對 技術 做的 tags finish 項目 ember 同時 這節介紹的Gitflow工作流借鑒自在nvie的Vincent Driessen。 Gitflow工作流定義了一個圍繞項目發布的嚴格分支模型。雖然比功能分支工作流復雜幾分,但提供了用於一個
Git工作流指南:Pull Request工作流
看到了 con 維護 work ont ria 而是 地址 org Pull Requests是Bitbucket上方便開發者之間協作的功能。提供了一個用戶友好的Web界面,在集成提交的變更到正式項目前可以對變更進行討論。 開發者向團隊成員通知功能開發已經完成,Pul
Disconf實踐指南:安裝篇
需要 logs start class pre 安裝nginx 百度 穩定 屬性 Disconf是百度開源出來的一款基於Zookeeper的分布式配置管理軟件。目前很多公司都在使用,包括滴滴、百度、網易、順豐等公司。通過簡單的界面操作就可以動態修改配置屬性,還是很方便的。使
現貨!《PHP7實踐指南:o2o網站與App後臺開發》京東天貓有售
php終於發售了,啥也不想說了,喜歡的或需要的就點擊 鏈接 進去購買吧。另外此書將作為 2017 PHP全球開發者大會 現場活動用書天貓購書包郵 PHP7實踐指南:O2O網站與App後臺開發 數據庫設計 PHP開發工程 適合作為企業內部培訓、培訓機構和大專院校的教學參考書京東購書PHP7實踐指南:O2O網站與
Elasticsearch NEST使用指南:映射和分析
包含 white time .net net eat not .html 映射 NEST提供了多種映射方法,這裏介紹下通過Attribute自定義映射。 一、簡單實現 1、定義業務需要的POCO,並指定需要的Attribute [ElasticsearchType(Na
Mac快速上手指南
資源管理 http 打開 rmi 最好 穩定性 logo 定性 mouse 上周剛入手了2017版MacBookPro,預裝macOS High Sierra。第一次接觸Mac系統,經過一周的使用,簡單總結下與Windows相比最常用的功能,快速上手。 1、Mac鍵盤實現
DPDK快速上手指南(18.02)
DPDKDPDK快速上手(linux) 本文檔主要來自linux_gsg-18.02.pdf的翻譯,翻譯肯定有不妥之處,請批評指正,我會隨後修改,不勝感激。 1. 介紹 本文檔包含有關DPDK(Data Plane Development Kit的縮寫)軟件的安裝和配置的說明,目的就是讓用戶快
Office 365 輕松上手指南 - SharePoint Online (一)
office 365 SharePoint 1. SharePoint Online是什麽? SharePoint Online是Office 365的核心組件之一,無需任何前期基礎架構投資,即可使用 SharePoint Online 雲服務輕松創建和管理以團隊為中心和以項目為中心的站點,在站點內
Office 365 輕松上手指南 - SharePoint Online (二)
office 3652.2. OneNote Online-會議紀要隨時記、一鍵分享更便捷 2.2.1. 典型需求 移動工作中的一線人員缺乏最直接有力的團隊支持,為盡快掌握客戶拜訪情況,公司希望前臺的銷售人員在拜訪客戶時,對於客戶提出的業務需求能夠實時自動的傳送給後臺值守的員工,後臺值守的員工看到需求後,直接
Office 365 輕松上手指南 - SharePoint Online (三)
office 3652.6. 根據業務需求、輕松添加所需應用程序 2.6.1. 典型需求 以往收集客戶意見或舉辦活動主要靠給客戶逐一打電話,或者短信、微信通知。一來打電話,會浪費時間,浪費電話費;二來無法對客戶進行更深入細致的調查,收集的數據也不規範。因此,公司想采用一種全新的調查方式,將設計好的調查問卷放到
Office 365 輕松上手指南 - SharePoint Online (四)
office 3652.7.1. 典型需求 傳統的紙制人工審批流程已經無法適應移動時代和遠程辦公的要求,因此公司希望能夠實現流程審批的自動化管理,將提交的審批項目(如文檔審批、請假審批、報銷審批等) 自動通過郵件傳送至指定人員進行審批,從而實現企業內多種審批流程的自動化管理。2.7.2. 應對方案2.7.2.
Confluence 6 CSS 指南:修改頂部背景
ConfluenceConfluence 默認頁面的頂部是有關站點的菜單連接,在這裏定義了 快速連接, 瀏覽菜單,用戶菜單和快速查找輸入框。在這個示例中,我們將會嘗試修改頂部的菜單部分的背景和一些自定義的圖片。創建一個自定義圖片。在這個例子中,我們將會創建一個自定義頭圖片,使用 1046 x 61 像素。上傳