【发布时间】: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]
尝试了以下但仍然相同的错误:
- 通过 GCP 防火墙配置打开
tcp:5672 - 将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 防火墙规则有一个未映射到 rabbitmq 计算实例的目标标记。否则,上述更改足以使其可以从远程机器访问
-
很高兴听到!你很高兴去回答你自己的问题!
标签: rabbitmq google-cloud-platform spring-amqp spring-rabbit