【问题标题】:Analysing messages residing in a queue RabbitMQ分析驻留在队列中的消息 RabbitMQ
【发布时间】:2016-07-03 14:36:28
【问题描述】:

我有几个 Java 客户端使用 RabbitMQ 默认交换向队列发送消息。

我希望能够分析队列中的消息(如果它们没有被明显消耗),识别消息的发送者,如果客户端发送的消息过多,则绑定一个特殊队列,以便该客户端发送消息发送到该队列。

我是 RabbitMQ 的新手,所以我想知道的是:

  • 是否可以在 RabbitMQ 中附加客户端 ID 作为标头?

  • 如何为工作量大的客户创建特殊队列?

  • 是否可以分析驻留在队列中的消息?

任何帮助将不胜感激。

【问题讨论】:

    标签: java rabbitmq message-queue messages


    【解决方案1】:

    是否可以在 RabbitMQ 中附加客户端 ID 作为标头?

    您可以使用BasicProperties 上的标题字段

    Map<String, Object> headers = new HashMap<String, Object>();
    headers.put("myclientid",  22222);
    
    channel.basicPublish(exchangeName, routingKey,
                 new AMQP.BasicProperties.Builder()
                   .headers(headers)
                   .build()),
                   messageBodyBytes);
    

    如何为工作量大的客户创建一个特殊的队列?

    没有“特殊”队列,您可以将更多消费者添加到同一个队列中,以防您的工作量很大。看 https://www.rabbitmq.com/tutorials/tutorial-two-java.html

    是否可以分析驻留在队列中的消息?

    您可以在不确认消息的情况下使用 API basic_get,这样您就可以在不将消息从队列中删除的情况下读取消息

    【讨论】:

    • 感谢您的回复。我只是想为这个特定的客户再增加一个消费者
    猜你喜欢
    • 1970-01-01
    • 2015-04-20
    • 2013-08-09
    • 2017-11-16
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2011-01-13
    • 2013-05-17
    相关资源
    最近更新 更多