应用debezium将postgresql数据送至kafka(官网示例 本地docker部署)
以下是一个简化的解决方案,演示如何使用Debezium将PostgreSQL数据送至Kafka:
- 确保你已经安装了Docker和Docker Compose。
- 创建一个
docker-compose.yml
文件,用于启动PostgreSQL和Kafka服务:
version: '2.1'
services:
zookeeper:
image: wurstmeister/zookeeper
ports:
- "2181:2181"
kafka:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
volumes:
- /var/run/docker.sock:/var/run/docker.sock
postgres:
image: postgres
ports:
- "5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_DB: postgres
debezium-postgres:
image: debezium/connect:1.8.0.Final
ports:
- "8083:8083"
environment:
GROUP_ID: 1
CONFIG: >
{
"name": "postgres-connector",
"config": {
"connector.class": "io.debezium.connector.postgresql.PostgresConnector",
"tasks.max": "1",
"database.hostname": "postgres",
"database.port": "5432",
"database.user": "postgres",
"database.password": "postgres",
"database.dbname": "postgres",
"database.server.name": "dbserver1",
"topic.creation.enable": "false",
"topic": "your-kafka-topic",
"key.converter": "org.apache.kafka.connect.json.JsonConverter",
"value.converter": "org.apache.kafka.connect.json.JsonConverter"
}
}
depends_on:
- zookeeper
- kafka
- postgres
- 在命令行中运行以下命令启动服务:
docker-compose up -d
- 确认所有服务都已启动:
docker ps
- 你现在可以将Debezium配置为监控PostgreSQL数据库的变更,并将这些变更发送至Kafka中指定的topic。
注意:这个例子中的配置可能需要根据你的环境进行调整,比如数据库的用户名、密码、数据库名称等。此外,Debezium配置中的database.server.name
、topic
和转换器配置(key.converter
, value.converter
)也需要根据实际情况进行设置。
评论已关闭