我已经尝试了一周将本地应用程序连接到CloudFoundry服务上的远程rabbitMQ但是lign: connection = factory.newConnection(); 由于java.net.SocketTimeoutException:read超时,因此总是抛出IOException 我已经正确地按照本教程的步骤来创建隧道收集它的信息,但它仍然无法正常工作。 这是我用来连接本地应用程序的lign:
String rabbitMQURI = “amqp://ubSGLHE7886x6:pk6NV4xxxxxx@localhost:10100/ve296d42a44794aac92536b362681e92a”;
factory.setUri(rabbitMQURI);
答案 0 :(得分:1)
只是想确保当您尝试将本地Java应用程序连接到CF rabbitmq服务时,首先通过运行“vmc tunnel servicename”打开隧道。这将为您提供连接属性:用户名,密码,virtual_host(vhost)和端口(如Dan所说,如果您没有打开其他隧道,它应该从10000开始)。您需要使用主机名“localhost”。为了使用它,请确保在hosts文件127.0.0.1中映射到名称“localhost”。
我可以使用以下代码行连接到我自己的隧道:
ConnectionFactory factory = new ConnectionFactory();
factory.setUri("amqp://usd0LnHpwPMvE:p3faI9Ug8E1au@localhost:10000/v51d86f3a7033476695655e42eaa16b1f");
Connection conn = factory.newConnection();
Channel channel = conn.createChannel();
答案 1 :(得分:0)
您确定此端口号是否正确?如果您没有激活任何其他隧道,则默认起始端口为10000。
答案 2 :(得分:0)
不幸的是,我相信你不能将vmc隧道与RabbitMQ服务一起使用,只能使用数据库服务。我不相信AMQP端口已被映射。
答案 3 :(得分:0)
看看http://support.cloudfoundry.com/entries/20334618-rabbitmq-service-faq,你会看到它说:
问题:CloudFoundry.com以外的应用程序是否可以访问RabbitMQ服务?
答案:目前不在。