Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从不同群集/计算机访问RabbitMQ_Rabbitmq_Google Cloud Platform - Fatal编程技术网

从不同群集/计算机访问RabbitMQ

从不同群集/计算机访问RabbitMQ,rabbitmq,google-cloud-platform,Rabbitmq,Google Cloud Platform,我在google云引擎上部署了一个RabbitMQ实例。我还有一个hadoop实例部署在不同的google云引擎上,但仍然在同一个应用程序中。我正在尝试从hadoop集群连接到RabbitMQ队列实例,但没有成功 我有一个java应用程序,它应该将项目推送到RabbitMQ队列上,然后在同一个应用程序中接收它们。以下是连接java代码: ConnectionFactory factory = new ConnectionFactory(); factory.setHost

我在google云引擎上部署了一个RabbitMQ实例。我还有一个hadoop实例部署在不同的google云引擎上,但仍然在同一个应用程序中。我正在尝试从hadoop集群连接到RabbitMQ队列实例,但没有成功

我有一个java应用程序,它应该将项目推送到RabbitMQ队列上,然后在同一个应用程序中接收它们。以下是连接java代码:

    ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("130.211.112.37:5672");
        try {
            connection = factory.newConnection();
            channel = connection.createChannel();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
但我得到了以下结果:

java.net.UnknownHostException: 130.211.112.37:5672
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at com.rabbitmq.client.impl.FrameHandlerFactory.create(FrameHandlerFactory.java:32)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:615)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:639)
at de.unibonn.iai.eis.luzzu.io.impl.SparkStreamProcessorObserver.<clinit>(SparkStreamProcessorObserver.java:157)
at de.unibonn.iai.eis.luzzu.evaluation.Main.main(Main.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:328)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
我试着打开谷歌云防火墙上的5672端口。请问有没有人能提供一些解决方案的建议

最好的
杰里米在评论中写道:

ConnectionFactory factory = new ConnectionFactory();
        //factory.setHost("130.211.112.37:5672"); <----- sethost accepts only the host! 
         factory.setHost("130.211.112.37"); 
         factory.setPort(5672); 
        try {
            connection = factory.newConnection();
            channel = connection.createChannel();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
默认情况下,端口为5672,因此不需要设置端口。
只有在更改默认端口时,才必须使用setPort。

如下所述:您需要调用setHost和setPort来创建连接。在应用程序中,主机和端口在同一行上传递。

尝试使用:factory.setHosthostName;factory.setportnumber;非常感谢!成功了