从零搭建 Kafka + Debezium + PostgreSQL:打造实时 CDC 数据流系统
本文将手把手带你在 Rocky Linux / RHEL / CentOS 上,从零搭建一个基于 Kafka、Debezium、PostgreSQL 的实时数据捕获(CDC)系统。
内容涵盖安装、配置、验证、常见问题与可视化管理。
一、为什么选择 Kafka + Debezium + PostgreSQL?
在现代数据架构中,越来越多系统需要捕获数据库的变更(例如新增订单、更新库存)并实时推送给下游系统。
这就是 Change Data Capture(CDC) 的核心作用。
而 Kafka + Debezium 是业界最常见、最稳定的 CDC 技术组合:
-
Kafka:高性能消息中间件,负责数据流中转与缓存。
-
Debezium:专门的数据库 CDC 工具,负责捕获数据库变更。
-
PostgreSQL:数据源,用逻辑复制(logical replication)输出 WAL 日志。
整体链路如下:
PostgreSQL → Debezium (in Kafka Connect) → Kafka → 消费者 (下游系统)
二、系统准备与用户配置
1️⃣ 系统环境
本文示例环境:
-
OS:Rocky Linux / RHEL / CentOS 9
-
Kafka 版本:4.1.0
-
Debezium:2.7.0.Final
-
PostgreSQL:13+
📌 与 Ubuntu 不同,Rocky 系列使用的是 wheel 组(而不是 sudo)。
2️⃣ 创建 kafka 用户
sudo useradd -m -s /bin/bash kafka
sudo usermod -aG wheel kafka
sudo passwd kafka
验证是否拥有 sudo 权限:
su - kafka
sudo whoami
# 输出:root ✅
3️⃣ 安装 Java 17
sudo yum install -y java-17-openjdk java-17-openjdk-devel
java -version
配置环境变量(写入 ~/.bashrc):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH