使用Spring Cloud Data Flow + CDC Debezium源實時實現變更資料捕獲 - SpringIO
在本文中,我們將研究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的文件非常差,難以理解,這些人有邏輯能力嗎?是搞程式的嗎?
相關文章
- SQL Server 變更資料捕獲(CDC)SQLServer
- 變更資料捕獲CDC的八個實際案例 - Dunith
- Oracle CDC 變更資料捕獲技術Oracle
- Airbnb的變更資料捕獲系統,實現資料突變實時響應AI
- 變更資料捕獲CDC幾種應用場景 - RTInsights
- 使用嵌入式Debezium和SpringBoot捕獲更改資料事件(CDC) - Sohan GanapathySpring Boot事件
- Debezium結合Kafka Connect實時捕獲MySQL變更事件寫入Elasticsearch實現搜尋流程KafkaMySql事件Elasticsearch
- 如何實現對 Oracle 的實時資料捕獲和效能調優|Flink CDC 專題Oracle
- 資料抽取中的CDC(變化資料捕獲)方式
- Spring系列學習之Spring Cloud Data Flow 微服務資料流SpringCloud微服務
- zendesk/maxwell:MySQL的CDC資料更新捕獲者MySql
- Flink CDC 系列 - 實現 MySQL 資料實時寫入 Apache DorisMySqlApache
- 使用Spring Data JDBC實現DDD聚合SpringJDBC
- Netflix計劃於2020年開源的資料庫資料複製重器:DBLog,一個類似Oracle OGG的通用的變更資料捕獲CDC框架 - Netflix資料庫Oracle框架
- Spring Boot 2 實戰:使用 Flyway 管理你資料庫的版本變更Spring Boot資料庫
- 陳胡:Apache SeaTunnel實現 非CDC資料抽取實踐Apache
- 獲得JD商品評論 API 如何實現實時資料獲取API
- SAP Customer Data Cloud(Gigya)的使用者搜尋實現Cloud
- 實戰 | 使用 Kotlin Flow 構建資料流 "管道"Kotlin
- LiquiBase 管理資料庫變更實踐UI資料庫
- Spring Cloud:使用 Feign 實現負載均衡詳解SpringCloud負載
- 使用Spring Data JPA實現DDD聚合的動態投影Spring
- Spring Cloud Eureka 實現安全控制SpringCloud
- Spring Cloud Config 實現配置中心SpringCloud
- Spring Cloud Gateway 實現 gRpc 代理SpringCloudGatewayRPC
- spring data mongodb配置+月庫實現SpringMongoDB
- 基於 Flink CDC 的現代資料棧實踐
- 如何使用Spring Boot,Spring Data和H2 DB實現REST APISpring BootRESTAPI
- 用Rust 實現的現代化實時開源資料倉儲Rust
- Flink CDC MongoDB Connector 的實現原理和使用實踐MongoDB
- Spring Cloud Alibaba基礎教程:使用Sentinel實現介面限流SpringCloud
- Spring Cloud:使用Ribbon實現負載均衡詳解(上)SpringCloud負載
- Spring Cloud:使用Ribbon實現負載均衡詳解(下)SpringCloud負載
- 使用Spring Cloud Sleuth和OpenTelemetry實現分散式跟蹤SpringCloud分散式
- 使用Spring Boot實現資料庫整合配置案例Spring Boot資料庫
- 使用 Debezium 實現真正的原子微服務以確保資料一致性 – brainDOSE微服務AI
- Spring Data JPA 實現聯表查詢Spring
- 如何使用 Milvus 向量資料庫實現實時查詢資料庫