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 port5672,而不是 15672。这就是为什么当您注释该行时它起作用的原因,它设置正确的端口,因为它采用默认端口。您可以通过调用 setPort(5672) 来检查这一点(虽然这不是设置端口所必需的,但它会显示问题出在端口号上,而不是您调用此函数的事实)。