RabbitMQ将VM连接到主机

时间:2016-07-21 15:33:37

标签: java networking rabbitmq

我是网络新手,我在语义上游泳(溺水)。

我有一个运行Java应用程序的VM。理想情况下,它将通过RabbitMQ队列从主机提供输入。然后,Java应用程序将结果放在另一个RabbitMQ队列上,该队列将由主机应用程序使用。经过一段时间的研究后,似乎RabbitMQ只存在于localhost空间,侦听器位于不同的端口上,我是否正确?

我是否需要2个RabbitMQ服务器串联运行,然后(一个在VM上,另一个在主机上)每个服务器都在监听同一个端口?或者我只需要运行一个RabbitMQ服务器,而两个应用程序都指向相同的IP地址/端口?

另外,我还读过你不能以'guest / guest'的身份连接,除非它在localhost上,我明白了,但是如果除了localhost以外什么都配置/可以访问RabbitMQ?

我一直在研究几个小时,但文档并未指出直接答案/操作指南。也许这是我缺乏网络经验。如果有人可以详细说明这些问题或指向一些文章/有用的指南,我将非常感激。

P.S。 - 我甚至不知道要显示什么代码来提供上下文。请告诉我,我会将代码编辑到帖子中。

1 个答案:

答案 0 :(得分:1)

RabbitMQ在开箱即用的所有网络接口上侦听TCP端口5672。这包括" loopback" interface(允许快速连接到self)和其他远程主机(包括VM)可见的接口。

对于您的用例,您可能需要两个方向的单个RabbitMQ实例。主机上的应用程序将消息发布到一个队列,VM中的Java应用程序将使用该队列中的消息并将结果推送到第二个队列。第二个队列可以由主机上的应用程序使用。

对于用户,您需要创建具有适当权限的新用户。这在access control article中有记录。要创建用户,您可以从管理Web UI(启用管理插件后)或使用rabbitmqctl命令行工具执行此操作。

最后一部分是主机和VM之间的网络连接。这取决于您使用的技术。它可能是开箱即用的,或者您可能必须配置VM连接到网络的方式。请参阅管理程序的文档。