参见死信 headers queue

See headers of dead letter queue

我正在使用 JDBC 接收器连接器将数据从 kafka 主题加载到 postgres。 这是我的配置

curl --location --request PUT 'http://localhost:8083/connectors/customer_sink_1/config' \
--header 'Content-Type: application/json' \
--data-raw '{
 "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
 "connection.url":"jdbc:postgresql://localhost:5432/postgres",
 "connection.user":"user",
 "connection.password":"passwd",
 "tasks.max" : "1",
 "topics":"table_name_same_as_topic_name",
 "insert.mode":"insert",
  "key.converter":"org.apache.kafka.connect.converters.ByteArrayConverter",
 "value.converter":"org.apache.kafka.connect.json.JsonConverter",
 "quote.sql.identifiers":"never",
 "errors.tolerance":"all",
 "errors.deadletterqueue.topic.name":"failed_records",
 "errors.deadletterqueue.topic.replication.factor":"1",
 "errors.log.enable":"true",
 "errors.deadletterqueue.context.headers.enable":"true",
 "reporter.bootstrap.servers":"localhost:9092",
 "reporter.result.topic.name":"success-responses",
 "reporter.result.topic.replication.factor":"1",
"reporter.error.topic.name":"error-responses",
"reporter.error.topic.replication.factor":"1"
}'

我在 windows 从 apache kafka 下载了 kafka,并使用 .bat 个文件来使用该服务。

我能够将失败的记录发送到其他主题,但是当我尝试从命令行使用 kafka-consumer 使用它时无法看到 headers,但可以看到 data/record 失败了。

根据文档,Kafka Connect Concepts

You can then use the **kcat** (formerly kafkacat) Utility to view the record header and determine why the record failed. Errors are also sent to **Connect Reporter**.

所以我尝试了 Connect Reporter,但是没有创建 success-responses 和 error-responses 主题。

没有kcat如何查看失败记录的headers????可能吗??

根据您的 Kafka 版本,您可以使用控制台消费者

kafka-console-consumer ... --property print.headers=true

或者如果你不能使用,你可以编写自己的消费者kcat