【问题标题】:Spring messaging : Can't connect to remote rabbitmq on GCPSpring消息传递:无法连接到GCP上的远程rabbitmq
【发布时间】:2018-01-13 21:07:39
【问题描述】:

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. 将rabbitmq 配置更改为/opt/bitnami/rabbitmq/etc/rabbitmq/rabbitmq.config 以将允许的ips 从localhost (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,一切正常。 我怀疑配置文件的更新是否实际上没有得到正确反映。我就是这样做的。

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

但我仍然在 UI 的“端口和上下文”部分看到了一些不同

  • 本地主机

  • gcp

有什么建议吗?还是看起来一切正常,但问题有所不同,例如 GCP 设置或其他问题?

【问题讨论】:

  • 我的错误。问题出在防火墙配置上。 GCP 防火墙规则有一个未映射到 rabbitmq 计算实例的目标标记。否则,上述更改足以使其可以从远程机器访问
  • 很高兴听到!你很高兴去回答你自己的问题!

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


【解决方案1】:

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

请确认您的防火墙规则中提到的“目标标签”确实映射到安装 rabbitmq 的 vm 实例

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    相关资源
    最近更新 更多