RabbitMQ setPort 导致 ConnectionRefused
RabbitMQ setPort causes ConnectionRefused
我有一个简单的RabbitMQ例子启动如下:
private Channel channel;
private ConnectionFactory connectionFactory;
@Autowired
public RabbitMqManager() {
connectionFactory = new ConnectionFactory();
connectionFactory.setHost("localhost");
//connectionFactory.setPort(15672); // ERROR : this breaks rabbitmq connection
try {
Connection connection = connectionFactory.newConnection();
channel = connection.createChannel();
如果我添加 setPort
那么它有时会导致 TimeoutException,有时会导致 ConnectionRefused。我花了半天时间才明白是怎么回事。然后我注释掉了setPort,一切正常。
注意:我可以看到 WebUI (http://localhost:15672) 没有任何问题并且服务器已启动 & 运行.
为什么setPort会中断连接初始化? RabbitMQ 是否搜索所有端口以检查可用服务器?还是使用默认端口 15672?
default port 是 5672
,而不是 15672
。这就是为什么当您注释该行时它起作用的原因,它设置正确的端口,因为它采用默认端口。您可以通过调用 setPort(5672)
来检查这一点(虽然这不是设置端口所必需的,但它会显示问题出在端口号上,而不是您调用此函数的事实)。
我有一个简单的RabbitMQ例子启动如下:
private Channel channel;
private ConnectionFactory connectionFactory;
@Autowired
public RabbitMqManager() {
connectionFactory = new ConnectionFactory();
connectionFactory.setHost("localhost");
//connectionFactory.setPort(15672); // ERROR : this breaks rabbitmq connection
try {
Connection connection = connectionFactory.newConnection();
channel = connection.createChannel();
如果我添加 setPort
那么它有时会导致 TimeoutException,有时会导致 ConnectionRefused。我花了半天时间才明白是怎么回事。然后我注释掉了setPort,一切正常。
注意:我可以看到 WebUI (http://localhost:15672) 没有任何问题并且服务器已启动 & 运行.
为什么setPort会中断连接初始化? RabbitMQ 是否搜索所有端口以检查可用服务器?还是使用默认端口 15672?
default port 是 5672
,而不是 15672
。这就是为什么当您注释该行时它起作用的原因,它设置正确的端口,因为它采用默认端口。您可以通过调用 setPort(5672)
来检查这一点(虽然这不是设置端口所必需的,但它会显示问题出在端口号上,而不是您调用此函数的事实)。