Spring 消息传递:无法连接到 GCP 上的远程 rabbitmq

Spring messaging : Can't connect to remote rabbitmq on GCP

This spring rabbitmq 消息传递指南不讨论主机端口配置。我遵循相同的方法并将这些属性添加到 application.properties 以连接到安装在 GCP

上的 rabbitmq 代理
spring:
  rabbitmq:
    host: XXX.XXX.XXX.XX
    port: 5672
    username: user
    password: bitnami
    virtual-host: /

虽然 运行 应用程序在连接到 rabbitmq 时出现超时异常

2017-08-06 17:16:54.322 ERROR 7280 --- [    container-1] o.s.a.r.l.SimpleMessageListenerContainer : Failed to check/redeclare auto-delete queue(s).

org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection timed out: connect
    at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:62) ~[spring-rabbit-1.7.2.RELEASE.jar:na]
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:367) ~[spring-rabbit-1.7.2.RELEASE.jar:na]
    at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:565) ~[spring-rabbit-1.7.2.RELEASE.jar:na]
    at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1430) ~[spring-rabbit-1.7.2.RELEASE.jar:na]
    at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1411) ~[spring-rabbit-1.7.2.RELEASE.jar:na]
    at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1387) ~[spring-rabbit-1.7.2.RELEASE.jar:na]
    at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:336) ~[spring-rabbit-1.7.2.RELEASE.jar:na]
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.redeclareElementsIfNecessary(SimpleMessageListenerContainer.java:1136) ~[spring-rabbit-1.7.2.RELEASE.jar:na]
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1387) [spring-rabbit-1.7.2.RELEASE.jar:na]

尝试了以下但仍然是同样的错误:

  1. 通过 GCP 防火墙配置打开tcp:5672
  2. 更改了 /opt/bitnami/rabbitmq/etc/rabbitmq/rabbitmq.config 处的 rabbitmq 配置以将允许的 ips 从本地主机 (127.0.0.1) 更改为 0.0.0.0

{

rabbit,
[{tcp_listeners, [{"0.0.0.0", 5672}, {"::", 5672}]},
{default_vhost, <<"/">>},
{default_user, <<"user">>},
{default_pass, <<"bitnami">>},
{default_permissions, [<<".*">>, <<".*">>, <<".*">>]}

}

这可能是什么问题?

更新
我已经在本地安装了 rabbitmq,一切正常。 我怀疑配置文件的更新是否实际上没有得到正确反映。我就是这样做的。

但我仍然看到 UI

中 'Ports and contexts' 部分下的一些差异

有什么指点吗?还是一切看起来都很好,但问题有所不同,例如 GCP 设置或其他问题?

在远程登录到端口并通过 GCP 控制台检查端口配置后,我发现我在为安装 rabbitmq 的实例设置正确的标签名称时犯了一个错误。

请确认您的防火墙规则中提到的 'target tag' 确实映射到安装了 rabbitmq 的 vm 实例

否则问题中提到的配置足以使其从远程客户端工作