关于java:RabbitMQ 连接VM到Host

RabbitMQ connecting VM to Host

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

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

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

另外,我还读到除非它在 ??localhost 上,否则您无法以"guest/guest"身份连接,我理解,但是 RabbitMQ 应该如何配置/访问除 localhost 之外的任何东西?

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

附言-- 我什至不知道要显示什么代码来给出上下文。告诉我,我会将代码编辑到帖子中。


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

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

对于用户,您需要创建一个具有适当权限的新用户。这在访问控制文章中有记录。要创建用户,您可以从管理 Web UI(启用管理插件之后)或使用 rabbitmqctl 命令行工具来创建。

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