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

时间:2017-08-06 12:22:02

标签: rabbitmq google-cloud-platform spring-amqp spring-rabbit

关于使用rabbitmq进行消息传递的

This春季指南没有讨论主机端口配置。我按照相同的方法将这些属性添加到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防火墙配置
  2. 打开tcp:5672
  3. 更改/opt/bitnami/rabbitmq/etc/rabbitmq/rabbitmq.config处的rabbitmq配置,将允许的ips从localhost(127.0.0.1)更改为0.0.0.0
  4. {

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

    }

    这可能是什么问题?

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

    • 更新了rabbitmq.config
    • rabbitmqctl stop_app
    • rabbitmqctl start_app

    但我仍然看到UI中“端口和上下文”部分下的一些差异

    • 本地主机
      enter image description here

    • GCP
      enter image description here

    任何指针?或者它看起来都很好,问题是不同的,比如使用GCP设置还是什么?

1 个答案:

答案 0 :(得分:0)

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

请确认&#39;目标代码&#39;防火墙规则中提到的确实映射到安装了rabbitmq的vm实例

否则,问题中提到的配置足以使其在远程客户端上运行