【问题标题】:RabbitMQ queue declare never endsRabbitMQ 队列声明永远不会结束
【发布时间】:2018-04-09 04:40:27
【问题描述】:

我只是想对 RabbitMQ 做一个简单的测试,我已经安装了 Erlang 并且正在运行 RabbitMQ。 我的接收器:

private final static String QUEUE_NAME = "hello";

public static void main(String[] argv) throws Exception {
   ConnectionFactory factory = new ConnectionFactory();
   factory.setHost("localhost");
   Connection connection = factory.newConnection();
   Channel channel = connection.createChannel();

   channel.queueDeclare(QUEUE_NAME, false, false, false, null);
   System.out.println(" [*] Waiting for messages. To exit press CTRL+C");

    Consumer consumer = new DefaultConsumer(channel) {
    @Override
        public void handleDelivery(String consumerTag, Envelope envelope,
                BasicProperties properties, byte[] body) throws IOException 
        {
            // TODO Auto-generated method stub
            String message = new String(body, "UTF-8");
            System.out.println(" [x] Received '" + message + "'");
        }
     };
     channel.basicConsume(QUEUE_NAME, true, consumer);
}

它永远不会打印出第一个 sysout,因为它在“channel.queueDeclare”行上声明队列时卡住了。 Rabbit 日志显示它正在接受 AMQP 连接,并且用户 guest 已通过身份验证并被授予对 vhost 的访问权限。

任何帮助将不胜感激。

【问题讨论】:

    标签: rabbitmq amqp


    【解决方案1】:

    我刚刚复制/粘贴了您的代码,没有任何问题...

     [*] Waiting for messages. To exit press CTRL+C
     [x] Received 'foo'
    

    我建议您启用管理插件并探索管理 UI。

    既然这个问题和Spring无关,你直接使用原生客户端,为什么还要加上标签?

    【讨论】:

    • 谢谢。我更正了标签。现在,如何启用管理插件并探索管理 UI?
    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 2021-05-17
    • 2013-04-09
    • 2010-12-27
    • 1970-01-01
    • 2021-08-05
    • 2011-01-20
    • 2017-11-05
    相关资源
    最近更新 更多