Debezium独立服务器HTTP Sink如何禁用消息Key的Schema
Debezium独立服务器禁用Key中Schema的解决方案
从你提供的日志能看到,有多组JsonConverterConfig输出,其中存在Key转换器的schemas.enable=true配置,这就是HTTP端点仍收到带Schema的Key的核心原因——你的配置没正确覆盖格式层的转换器参数。
正确配置方式
把禁用Schema的参数加上debezium.format.前缀,明确指定为格式层的转换器配置,替换原来的key.converter.schemas.enable=false和value.converter.schemas.enable=false:
# 源端配置 debezium.source.connector.class=io.debezium.connector.postgresql.PostgresConnector debezium.source.offset.storage.file.filename=data/offsets.dat debezium.source.offset.flush.interval.ms=60000 debezium.source.database.hostname=db.host.com debezium.source.database.port=5432 debezium.source.database.user=postgres debezium.source.database.password=helloworld debezium.source.database.dbname=postgres debezium.source.topic.prefix=test-prefix debezium.source.plugin.name=pgoutput # 格式配置 - 禁用Key和Value的Schema debezium.format.value=json debezium.format.key.converter=org.apache.kafka.connect.json.JsonConverter debezium.format.key.converter.schemas.enable=false debezium.format.value.converter=org.apache.kafka.connect.json.JsonConverter debezium.format.value.converter.schemas.enable=false debezium.source.schema.include.list=public quarkus.log.console.json=false # 下沉端配置 debezium.sink.type=http debezium.sink.http.url=http://localhost:3000/endpoint debezium.sink.http.timeout.ms=30000 debezium.sink.http.retry.interval.ms=30000
配置说明
原来的key.converter.schemas.enable=false是全局Kafka Connect级别的配置,而Debezium Server中格式相关的转换器参数必须通过debezium.format.前缀指定,这样才能确保格式层的JsonConverter正确应用禁用Schema的设置,抵消全局配置的影响。
重启Debezium Server后,检查日志里的JsonConverterConfig输出,确认所有Key转换器的schemas.enable都为false,此时HTTP端点收到的消息就不会包含Key的Schema内容了。
内容的提问来源于stack exchange,提问作者user2501711
相关产品推荐
相关产品推荐

