5

如果消息中缺少时间戳标头,是否可以将代理配置为插入时间戳标头?那么如果发布客户端不添加时间戳头,那么broker是否可以插入一个时间戳值与交易所接收到消息的时刻相匹配的时间戳值呢?我应该在哪里寻找该配置?或者这是一个坏主意?

4

2 回答 2

5

截至 2015 年,原始问题有了新的答案。

这个插件将完全符合您的要求。

请记住,会有一些最小的开销,因为它将挂钩所有排队的消息。

于 2015-11-10T21:48:33.127 回答
4

因此,要回答您的问题,没有办法将代理配置为插入时间戳。AMQP 规范中的任何内容都不需要消息知道它何时到达代理,并且请记住,在代理端手动插入时间戳只会表示代理接收到消息的时间,而不是发布消息的时间。

如果您一心想要这样做,您可以编写自己的 RabbitMQ 插件来执行此操作,但我不建议您这样做。相反,我建议强制您的生产者在其消息属性中包含时间戳。

资源:

RabbitMQ 消息到达时间戳

RabbitMQ AMQP.BasicProperties Java API

于 2013-08-13T20:07:09.227 回答