我尝试为我的Kafka主题实现重试机制。所以我在producer header中设置了rerty count。而消费者不给予我头。
var headers = [ {"retry":5}] producer.produce(topic, partition, message, key, timestamp,headers);
dy1byipe1#
根据这里找到的生产者文档。在标准API中使用produce():https://www.npmjs.com/package/node-rdkafka
这意味着不透明值没有与消息一起存储,这就是为什么消费者不能使用它的原因。相反,不透明值将在传递报告中发送回。这意味着您必须提供一个交付报告回调并从交付报告中读取值。
bejyjqdl2#
在producer中,我放错了头参数而不是这个
必须是这样
var headers = [ {"retry":5}] producer.produce(topic, partition, message, key, timestamp,opaque,headers);
标题将作为对象返回。你可以使用数据在onData函数中读取你的头。集管
ni65a41a3#
有时候,你会得到这样的标题:
"headers":[{"env":{"type":"Buffer","data":[105,100,116,51]}},{"deployment.messagingModee":"Buffer","data":[82,83,71,62,82,64,81,71,78,71]}}],"size":37266,"key":null,"topic":"TOPIC_NAME","offset":214rtition":4,"timestamp":1681908958595}
3条答案
按热度按时间dy1byipe1#
根据这里找到的生产者文档。在标准API中使用produce():https://www.npmjs.com/package/node-rdkafka
这意味着不透明值没有与消息一起存储,这就是为什么消费者不能使用它的原因。相反,不透明值将在传递报告中发送回。这意味着您必须提供一个交付报告回调并从交付报告中读取值。
bejyjqdl2#
在producer中,我放错了头参数
而不是这个
必须是这样
标题将作为对象返回。你可以使用数据在onData函数中读取你的头。集管
ni65a41a3#
有时候,你会得到这样的标题: