You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debezium对接PostgreSQL时Kafka未生成对应变更主题问题咨询

排查到的配置错误点

  • 连接器数据库账号配置错误
    你连接器配置中database.user填的是user,但docker-compose的PostgreSQL服务没有配置POSTGRES_USER环境变量,PostgreSQL默认用户名是postgres,账号不匹配导致Debezium无法连接数据库,自然无法创建对应主题。
    修复方法:将连接器配置中的"database.user": "user"改为"database.user": "postgres"。

  • WAL配置未生效
    你在初始化脚本中通过ALTER SYSTEM SET wal_level to 'logical'修改逻辑复制配置,但该配置需要重启PostgreSQL才能生效,且你docker-compose中PostgreSQL的启动参数配置被注释,首次启动时PostgreSQL的wal_level仍为默认值replica,不满足Debezium逻辑复制要求。
    修复方法:取消docker-compose中PostgreSQL服务command行的注释,启动时直接指定WAL相关参数,避免重启操作。

  • Kafka连接地址配置错误
    连接器配置中database.history.kafka.bootstrap.servers填的是kafka:29092,但29092是Kafka暴露给宿主机的监听端口,Debezium Connect容器和Kafka同属一个docker网络,应该用内部监听端口9092访问。
    修复方法:将该配置改为"database.history.kafka.bootstrap.servers": "kafka:9092"。

  • 初始化脚本冗余操作可能导致执行失败
    debezium官方的PostgreSQL镜像已经预装了pgoutput插件,你脚本中执行apt-get update && apt-get install postgresql-13-pgoutput属于冗余操作,如果镜像对应的PostgreSQL版本不是13,该命令会执行失败,导致后续建表语句不执行。
    修复方法:删除初始化脚本中安装pgoutput的命令。

关于JSON类型的疑问

PostgreSQL的JSON/JSONB类型属于Debezium原生支持的数据类型,不是本次问题的错误来源。

验证步骤

配置修改后重新部署服务,执行以下命令确认连接器状态:

  1. 查看已部署的连接器列表:curl http://localhost:8083/connectors
  2. 查看指定连接器运行状态:curl http://localhost:8083/connectors/anonprofile-connector/status
    确认连接器状态为RUNNING后,再查看Kafka主题列表,正常会生成名为MOSIP.public.anon_profiles的主题。

内容的提问来源于stack exchange,提问作者Gandharv Suri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 12:12:00