基于 PostgreSQL WAL 构建 CDC 系统:原理与工程实现
序言
数据库中的一行记录发生变化后,影响往往不只停留在数据库内部:
- 商品和内容发生变化,需要及时更新 Elasticsearch 索引;
- 用户资料或配置发生变化,需要刷新 Redis 和派生视图;
- 业务数据需要持续进入 Kafka、数据仓库或数据湖;
- 账户、权限等关键数据的修改,需要留下审计记录并触发后续流程。
这些场景的下游各不相同,却都依赖同一种能力:持续捕获数据库中的 INSERT、UPDATE 和 DELETE,并可靠地把变化传递出去。这就是 CDC(Change Data Capture,变更数据捕获)。

