使用Spring Cloud Data Flow + CDC Debezium源實時實現變更資料捕獲 - SpringIO

banq發表於2020-12-21

在本文中,我們將研究Debezium CDC源,該使我們能夠從MySQL,PostgreSQL,MongoDB,Oracle,DB2和SQL Server等資料庫捕獲資料庫更改,並透過各種訊息繫結器實時處理這些更改,例如RabbitMQ,Apache Kafka,Azure事件中心,Google PubSub和Solace PubSub +等。演示使用Spring Cloud Data Flow(SCDF)部署流實時響應資料庫更新,將變更事件轉換為分析指標並將其釋出到Prometheus進行分析和視覺化的流水線管道有多麼容易。格拉法納(Grafana)。
 
更改資料捕獲(CDC)是一種用於觀察寫入資料庫的所有資料更改並將其釋出為可以以流方式處理的事件的技術。由於您的應用程式資料庫總是在變化,因此CDC允許您對這些更改做出反應,並讓您的應用程式按照提交給資料庫的順序來傳輸每個行級更改。
CDC支援多種用例,例如:快取無效,記憶體中的資料檢視,更新搜尋索引,透過使不同資料來源保持同步來複制資料,實時欺詐檢測,儲存審計跟蹤,資料出處等等。
Spring Cloud Data Flow CDC Source應用程式圍繞Debezium構建,Debezium是一種流行的,開源的,基於日誌的CDC實現,支援各種資料庫。
CDC source實現嵌入了Debezium引擎,它不依賴於Apache Kafka或ZooKeeper!您可以將CDC source連同任何受支援的訊息繫結器一起使用!
這是用於連線到MySQL資料庫的示例配置:

# DB type
cdc.connector=mysql

# DB access
cdc.config.database.user=debezium
cdc.config.database.password=dbz
cdc.config.database.hostname=localhost
cdc.config.database.port=3306

# DB source metadata
cdc.name=my-sql-connector
cdc.config.database.server.id=85744
cdc.config.database.server.name=my-app-connector

在cdc.name, cdc.config.database.server.id和cdc.config.database.server.name屬性用於識別和排程傳入的事件。
所有開箱即用的Spring Cloud Stream源應用程式已經自動配置了多個開箱即用的通用處理器。您可以將這些處理器啟用為CDC源的一部分。下面這是一個示例,我們在其中執行CDC源並接收資料,然後轉換消耗的資料,然後再將其傳送到中介軟體上的目標。

java -jar cdc-debezium-source.jar
 --cdc.connector=mysql --cdc.name=my-sql-connector
 --cdc.config.database.server.name=my-app-connector
 --cdc.config.database.user=debezium --cdc.config.database.password=dbz
 --cdc.config.database.hostname=localhost --cdc.config.database.port=3306
 --cdc.schema=true
 --cdc.flattening.enabled=true
 --spring.cloud.function.definition=cdcSupplier|spelFunction
 --spel.function.expression=payload.toUpperCase()


更多參考原文,吐槽:Spring.io的文件非常差,難以理解,這些人有邏輯能力嗎?是搞程式的嗎?
 

 

相關文章