1. 作用
簡單概述就是cdc(change data capture),實時資料分析領域用的比較多
2. 簡單使用(基於官網的docker 說明)
備註: 測試沒有使用守護程序模式為了方便測試
a. zookeeper
docker run -it --rm --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 debezium/zookeeper:0.6
b. kafka
docker run -it --rm --name kafka -p 9092:9092 --link zookeeper:zookeeper debezium/kafka:0.6
c. mysql
docker run -it --rm --name mysql -p 3306:3306 -e mysql_root_password=debezium -e mysql_user=mysqluser -e mysql_password=mysqlpw debezium/example-mysql:0.6
d. mysql-client
docker run -it --rm --name mysqlterm --link mysql --rm mysql:5.7 sh -c 'exec mysql -h"$mysql_port_3306_tcp_addr" -p"$mysql_port_3306_tcp_port" -uroot -p"$mysql_env_mysql_root_password"'
檢視表資訊
use inventory;
show tables;
select * from customers;
e. kafka connect
docker run -it --rm --name connect -p 8083:8083 -e group_id=1 -e config_storage_topic=my_connect_configs -e offset_storage_topic=my_connect_offsets --link zookeeper:zookeeper --link kafka:kafka --link mysql:mysql debezium/connect:0.6
進行connect 資訊檢視
f. 監控mysql 資料庫變更
返回資訊如下:
}檢視註冊的connect
["inventory-connector"]
g. 檢視資料變更
docker run -it --name watcher --rm --link zookeeper:zookeeper debezium/kafka:0.6 watch-topic -a -k dbserver1.inventory.customers
應該會看到包含下面的資訊:]},
"payload":
}進行資料變更
update customers set first_name='anne marie' where id=1004;
應該會看到下面的資訊]},
"payload":
}刪除、新增的資訊類似,同時對於監控資料變更的服務,在停止之後,重新啟動資料還是可以同步過來的
3. 說明
大資料,微服務應用開發、單體應用向微服務遷移的時候使用起來可以減少好多開發的工作量
4. 參考資料
遺留系統重建實踐
migrating_to_microservices_databases_red_hat.pdf (
資料同步Debezium的應用
背景 近期公司在響應國家軟體規範要求,重點專案的資料庫採用開源版postgresql 下文簡稱pg 業務端依然使用oracle。因此為了保證pg到oracle的資料同步問題,經過調研採用debezium開源專案,實現 pg kafka oracle 的資料實時同步。開始介紹重點 debuzium簡介...
Aqua Data Studio 資料庫工具使用
aqua data studio aqua data studio是一款完整ide的資料庫開發工具,它提供3種主要功能 資料查詢與管理工具。比對資料工具與源控制和檔案系統的整合工具。幫助你建立,編輯 和執行 sql 的管理工具指令碼編寫,以及瀏覽和修改資料庫組織。對所有主要關係的資料庫提供乙個一致的...
iPhone Instruments工具使用
本文摘自 xcode 視窗並顯示出問題的 這是非常棒的功能。在本例中,第一次 nsstring 分配的時候出現了洩露,你需要做一些處理。這是個非常簡單的例子,但找到為什麼會發生洩露則要麻煩些。讓我們仔細看一下例子。在 viewdidload 當中,我們為字串分配到了記憶體,如下所示 mmyleaky...