debezium/postgres本镜像仓库已迁移至quay.io/debezium/postgres。该镜像基于postgres:11-alpine构建,专为Debezium变更数据捕获(CDC)设计,扩展了PostgreSQL的逻辑解码功能,使其能与Debezium生态集成。
PostgreSQL的逻辑解码功能允许客户端提取数据库表的所有持久化变更,转换为易于理解的格式。本镜像通过添加特定插件,使Debezium能够捕获这些变更并传输到Kafka。
postgres:11-alpine构建postgres-decoderbufs:基于Protocol Buffers,由Debezium社区维护wal2json:基于JSON格式,由wal2json社区维护pgoutput插件Debezium是一个分布式平台,可将现有数据库转换为事件流,使应用程序能快速响应数据库的行级变更。它构建在Kafka之上,提供与Kafka Connect兼容的连接器,用于监控特定数据库管理系统。Debezium将数据变更历史记录在Kafka日志中,确保应用程序可随时停止和重启,并能消费所有错过的事件,保证事件处理的准确性和完整性。
运行Debezium需要Zookeeper、Kafka以及运行Debezium连接器的服务。简单评估和实验可在单台主机上运行所有服务;生产环境则需部署多实例以确保性能、可靠性和容错能力,可通过OpenShift等平台管理多主机上的Docker容器。注意:Kafka在Docker容器中运行存在局限性,高吞吐量场景建议按Kafka文档在专用硬件上部署。
本镜像的使用方式与postgres:10.0-alpine类似,但已预配置逻辑解码功能,配置文件路径为/usr/share/postgresql/postgresql.conf.sample。
配置文件关键内容如下:
# LOGGING log_min_error_statement = fatal # CONNECTION listen_addresses = '*' # MODULES shared_preload_libraries = 'decoderbufs' # 加载Debezium的逻辑解码插件 # REPLICATION wal_level = logical # 启用逻辑解码(修改需重启) max_wal_senders = 1 # 最大walsender进程数(修改需重启) #wal_keep_segments = 4 # 日志文件段数量,每段16MB;0表示禁用 #wal_sender_timeout = 60s # 超时时间(毫秒);0表示禁用 max_replication_slots = 1 # 最大复制槽数量(修改需重启)
该配置启用了逻辑解码功能,加载decoderbufs插件,并配置了供Debezium PostgreSQL Connector使用的复制槽。
可使用与标准PostgreSQL镜像相同的方式启动,例如:
bashdocker run -d --name debezium-postgres -e POSTGRES_PASSWORD=postgres quay.io/debezium/postgres
启动后,可通过修改postgresql.conf调整配置,或通过环境变量自定义参数。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务