1. 程式人生 > >Canal上手指南:mysql到kafka

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 像素。上傳