RabbitMQ接收消息时的时间戳

RabbitMQ接收消息时的时间戳,rabbitmq,Rabbitmq,当RabbitMQ接收到消息时,有没有办法从时间获取时间戳?在我们的应用程序中,我们希望测量消息在队列中的长度: time_in_queue=System.currentTimeMillis() - timestamp_from_msg 有一个插件可以做到这一点: 一个插件,在出现错误时添加时间戳 消息首先进入RabbitMQ 作者:RabbitMQ团队 Github:rabbitmq/rabbitmq消息时间戳 我更新了“rabbitmq消息时间戳”插件。我的更改已合并,可以使用新的标题“t

当RabbitMQ接收到消息时,有没有办法从时间获取时间戳?在我们的应用程序中,我们希望测量消息在队列中的长度:

time_in_queue=System.currentTimeMillis() - timestamp_from_msg
有一个插件可以做到这一点:

一个插件,在出现错误时添加时间戳 消息首先进入RabbitMQ

作者:RabbitMQ团队

Github:rabbitmq/rabbitmq消息时间戳


我更新了“rabbitmq消息时间戳”插件。我的更改已合并,可以使用新的标题“timestamp_in_ms”,其中包含以毫秒为单位的时间戳。

至少从RMQ 5.10.0开始,在随每条消息返回的properties对象上似乎有一个getTimestamp()方法

public class ExchangeConsumer extends DefaultConsumer {
    ...
    @Override
    public void handleDelivery(String consumerTag,
                           Envelope envelope,
                           AMQP.BasicProperties properties,
                           byte[] body) throws IOException {
        Date timestamp = properties.getTimestamp();
    }

为什么不在发布消息时简单地向消息头添加时间戳呢?我只需要花在RabbitMQ上的时间。将排除网络延迟(客户发送消息,RabbitMQ获取消息并添加时间戳,我可以在RabbitMQ中测量时间)。此外,在同步服务器时间(客户端、RabbitMQ、服务器应用程序)时,可以测量netowork延迟。是的,但问题是,时间戳只包含秒,而不是毫秒。我在GitHub上为此创建了一个问题。我在找一个替代品。@hradiff你找到了吗?