新聞中心
Kafka Connect如何實現(xiàn)同步RDS Binlog數(shù)據(jù)?
作者:魚跟貓 2018-05-14 13:51:39
大數(shù)據(jù)
Kafka 本文將演示如何在E-MapReduce上實現(xiàn)將RDS binlog實時同步到Kafka集群中。實驗中使用VPC網(wǎng)絡(luò)環(huán)境,以下實例創(chuàng)建時默認都是在VPC環(huán)境下。

為企業(yè)提供網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)站優(yōu)化、成都營銷網(wǎng)站建設(shè)、競價托管、品牌運營等營銷獲客服務(wù)。創(chuàng)新互聯(lián)擁有網(wǎng)絡(luò)營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認可!
1. 背景
在我們的業(yè)務(wù)開發(fā)中,往往會碰到下面這個場景:
- 業(yè)務(wù)更新數(shù)據(jù)寫到數(shù)據(jù)庫中
- 業(yè)務(wù)更新數(shù)據(jù)需要實時傳遞給下游依賴處理
所以傳統(tǒng)的處理架構(gòu)可能會這樣:
但這個架構(gòu)也存在著不少弊端:我們需要在項目中維護很多發(fā)送消息的代碼。新增或者更新消息都會帶來不少維護成本。所以,更好的處理方式應(yīng)該是直接將數(shù)據(jù)庫的數(shù)據(jù)接入到流式系統(tǒng)中,如下圖:
本文將演示如何在E-MapReduce上實現(xiàn)將RDS binlog實時同步到Kafka集群中。
2. 環(huán)境準備
實驗中使用VPC網(wǎng)絡(luò)環(huán)境,以下實例創(chuàng)建時默認都是在VPC環(huán)境下。
2.1 準備一個測試RDS數(shù)據(jù)庫
創(chuàng)建一個RDS實例,版本選擇5.7。這里不贅述如何創(chuàng)建RDS,詳細流程請參考RDS文檔。創(chuàng)建完如圖:
2.2 準備一個Kafka集群
創(chuàng)建一個E-MapReduce Kafka集群,版本選擇EMR-3.11.0。需要注意,這里必須選擇EMR-3.11.0以上版本,否則不會默認安裝啟動Kafka Connect服務(wù)。詳細創(chuàng)建流程請參考E-MapReduce文檔。創(chuàng)建完如圖:
注意:RDS實例和E-MapReduce Kafka集群***在同一個VPC中,否則需要打通兩個VPC之間的網(wǎng)絡(luò)。
3. Kafka Connect
3.1 Connector
Kafka Connect是一個用于Kafka和其他數(shù)據(jù)系統(tǒng)之間進行數(shù)據(jù)傳輸?shù)墓ぞ?,它可以實現(xiàn)基于Kafka的數(shù)據(jù)管道,打通上下游數(shù)據(jù)源。我們需要做的就是在Kafka Connect服務(wù)上運行一個Connector,這個Connector是具體實現(xiàn)如何從/向數(shù)據(jù)源中讀/寫數(shù)據(jù)。Confluent提供了很多Connector實現(xiàn),你可以在這里下載。不過今天我們使用Debezium提供的一個MySQL Connector插件,下載地址。
下載這個插件,并將解壓出來的jar包全部拷貝到kafka lib目錄下。注意:需要將這些jar包拷貝到Kafka集群所有機器上。
在Kafka集群的服務(wù)列表中重啟Kafka Connect組件。
3.2 啟動Connector
在創(chuàng)建connector前,我們需要做一番配置,這里羅列一些Debezium MySQL Connector的主要配置項:
登錄到Kafka集群,配置并創(chuàng)建一個connector,命令如下:
這時,我們可以看到一個創(chuàng)建好的connector,如圖:
3.3 注意事項
server_id是多少?:你可以在RDS執(zhí)行"SELECT @@server_id;"查到。
創(chuàng)建connector時可能會出現(xiàn)連接失敗,請確保RDS的白名單已經(jīng)授權(quán)了Kafka集群機器訪問。
4 測試
4.1 創(chuàng)建一張表
一會之后,Kafka集群中會自動創(chuàng)建一個對應(yīng)的topic
插入幾條數(shù)據(jù)
查看binlog數(shù)據(jù)
查看fulfillment.mugen.students這個topic,是否有剛剛新插入的數(shù)據(jù)
結(jié)果如圖所示:
5. 資料
- confluent官方文檔 https://docs.confluent.io
- debezium官網(wǎng) http://debezium.io/
- kafka官方文檔 http://kafka.apache.org/documentation.html
分享題目:KafkaConnect如何實現(xiàn)同步RDSbinlog數(shù)據(jù)?
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/djhjhgs.html


咨詢
建站咨詢
