2017-08-30 1129 views
0

我实现它在Java和希望有终点的构造函数:的RabbitMQ拒绝连接当我设置默认端口

public EndPoint(final String endPointName, final String host, final int port){ 
    this.name=endPointName; 
    ConnectionFactory factory = new ConnectionFactory(); 

    factory.setHost(host); 
    factory.setPort(port); 
    connection = factory.newConnection(); 

    channel = connection.createChannel(); 
    channel.queueDeclare(name, false, false, false, null); 

} 

我收到EOFException:connection refused甚至当我设置被认为是参数"localhost"15672据我所知,默认为默认。问题出在方法setPort():没有它,一切正常。

为什么我认为15672端口是正确的?没有setPort()我可以打开我的浏览器Rabbitmq助手localhost:15672并查看我创建的队列。

如何设置端口没有异常?

回答

1

RabbitMQ操作协议的默认端口是5672;端口15672是管理插件(“GUI”)的默认端口。

0

不同版本的RabbitMQ具有不同的默认端口。如果代码在没有调用setPort()的情况下工作,那么我期望RabbitMQ客户端运行时库使用的默认值 - 无论是什么 - 都是正确的,并且您对15672的具体选择不正确。

“连接被拒绝”几乎总是意味着没有任何内容实际上在指定端口上进行侦听。

+0

当我不使用setPort()我可以在浏览器本地主机:15672打开,看到我创建的rabbitmq队列 – user2957954

+1

尝试5672不是15672 – cantSleepNow

+0

我不使用RabbitMQ太多,所以也许这是关闭的,但:可以15672是某种管理港口,而不是经纪人港口?正如前面的海报所指出的那样,现在5672是AMQP信息的通常默认设置。当我使用ActiveMQ/Artemis进行AMQP时,我无法将网络浏览器连接到AMQP端口。 –

相关问题