2017-08-06 161 views
0

This有關使用rabbitmq進行消息傳遞的spring指南並不提及主機端口配置。我跟着相同,並添加這些屬性application.properties連接到RabbitMQ的運行時我得到超時異常的應用程序在連接到RabbitMQ的Spring消息傳遞:無法連接到GCP上的遠程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

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

安裝經紀人但還是同樣的錯誤:

  1. 通過GCP防火牆配置開闢了tcp:5672
  2. 改變了RabbitMQ的配置在/opt/bitnami/rabbitmq/etc/rabbitmq/rabbitmq.config改變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,一切正常。 我懷疑配置文件的更新是否實際上沒有得到正確反映。這是我做到的。

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

但我仍看到在UI

  • 下的 '端口和上下文' 部分差一些

    localhost
    enter image description here

  • GCP
    enter image description here

任何指針?或者這一切看起來很好,問題是不同的,如使用GCP設置或什麼?

+1

我的錯誤。問題在於防火牆配置。GCP防火牆規則具有未映射到rabbitmq計算實例的目標標記。 否則上述更改足以使其可從遠程機器訪問 – Vijith

+0

Grate可以聽到!你很好去回答你自己的問題! –

回答

0

在telnet到端口並通過GCP控制檯檢查端口配置後,我發現我在設置正確的標記名稱到安裝rabbitmq的實例時犯了一個錯誤。

請不要確認您的防火牆規則中提到的「靶標」確實是映射到的RabbitMQ安裝

否則在問題中提到的配置足以讓它從遠程客戶端工作的虛擬機實例