Docker环境下Debezium同步Postgres到Kafka失败求助
问题解决步骤
1. 修复命令拼写错误
你执行的kafkacat命令中,Schema Registry的主机名存在拼写错误:schema-regisrty应为schema-registry(缺失字母t)。修正后的命令如下:
docker run --tty --network pythonproject5_default confluentinc/cp-kafkacat kafkacat -b kafka:9092 -C -s key=s -s value=avro -r http://schema-registry:8081 -t postgres.public.users
2. 后续排查要点(若修正后仍报错)
- 检查Schema Registry服务状态:在Docker Compose目录下执行
docker-compose ps,确认schema-registry服务处于Up运行状态。 - 验证网络连通性:进入临时容器测试与Schema Registry的连通性:
若返回主题列表则网络正常;若仍无法解析主机,检查Docker Compose中Schema Registry的服务名是否确实为docker run --rm --network pythonproject5_default confluentinc/cp-kafkacat curl http://schema-registry:8081/subjectsschema-registry。 - 核对Debezium连接器配置:确保连接器配置中指定了正确的Avro转换参数:
value.converter=io.confluent.connect.avro.AvroConvertervalue.converter.schema.registry.url=http://schema-registry:8081
- 确认消息格式:先用无Avro解析的命令查看原始消息,验证是否为Schema Registry管理的Avro格式:
若消息为带Schema ID前缀的二进制数据则格式正确;若为纯JSON,说明连接器未配置Avro转换。docker run --tty --network pythonproject5_default confluentinc/cp-kafkacat kafkacat -b kafka:9092 -C -t postgres.public.users -o beginning
内容的提问来源于stack exchange,提问作者George Rybojchuk
相关产品推荐
相关产品推荐

