【问题标题】:RabbitMQ: Connection issue while publishing message to multiple queuesRabbitMQ:将消息发布到多个队列时出现连接问题
【发布时间】:2015-04-18 03:04:02
【问题描述】:

我在 Map 中有消息 - 作为队列名称的键和作为消息列表的值。 每当我将多条消息发布到队列服务器时,都会引发异常,因为用户已达到允许的最大登录次数。

同时将消息发布到 1 个队列。下面是执行的代码:

public class MessageManager {

public static void publish(String exchange, HashMap<String, List<String>> queueNameWithMessages) throws IOException {
    ...
    ConnectionFactory factory = new ConnectionFactory();
    factory.setHost(Constants.HOST_NAME);
    factory.setUsername(Constants.USER_NAME);
    factory.setPassword(Constants.PASSWORD);
    factory.setPort(Constants.PORT);
    Connection connection = factory.newConnection();
    Channel ch = connection.createChannel();
    Channel ch1 =  connection.createChannel();
    try {
        for(Entry<String, List<String>> entry : queueNameWithMessages) {
            String routingKey = entry.getKey();
            for(String  messageToBeSent : entry.value()) {
                ch.basicPublish(exchange, routingKey, true, MessageProperties.PERSISTENT_BASIC,  messageToBeSent.getValue().getBytes());
            }
            ExecutorService threadExecutor = Executors.newFixedThreadPool(5);
            String responseKey = props.getProperty(routingKey);
            if(!CLAMUtility.workingListnerToRespnseQueue.contains(responseKey)) {
                Worker fast = new Worker(0, threadExecutor, ch1,responseKey, routingKey);
                CLAMUtility.workingListnerToRespnseQueue.add(responseKey);
            }
        }
        ch.close();
        System.out.println("Message published successfully!\n \n");
    } catch (Exception e) {
        e.printStackTrace();
    } 
}

}

【问题讨论】:

  • 您是否将相同的消息发布到多个队列?如果是这样,这就是交换的目的。作为一般的最佳实践,您应该始终发布到交易所,而不是直接发布到队列。
  • 我正在向每个队列发送所有不同的消息,这就是我在 Entry&lt;String, List&lt;String&gt;&gt; entry : queueNameWithMessages 上应用的循环。感谢您快速参考发布交换。我希望以这种方式发布
  • “服务器抛出异常,因为用户已达到允许的最大登录次数”是什么意思。我不记得 RabbitMQ 有这种错误消息

标签: rabbitmq rabbitmq-exchange


【解决方案1】:

我们发现此问题与 Rabbit MQ 无关。消息消费者系统存在一些未正确处理的与用户交互相关的限制。

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-21
    • 2017-09-06
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多