在RabbitMQ中vhost的含义是什么?

时间:2017-07-22 03:12:11

标签: rabbitmq

当我为rabbitmq用户设置权限时,会输出vhost

[root@ha-node1 my.cnf.d]# rabbitmqctl set_permissions openstack ".*" ".*" ".*" 
Setting permissions for user "openstack" in vhost "/" ...

我设置权限时vhost的含义是什么,它有什么功能?

3 个答案:

答案 0 :(得分:1)

让我通过给你一个类比来说明这一点。

  • Vhosts 之于 Rabbit,就像虚拟机之于物理服务器一样:Vhosts 允许您通过提供实例之间的逻辑分离来安全可靠地运行多个应用程序的数据。

  • 这对于将同一 Rabbit 上的多个客户分开到避免队列和交换机上的命名冲突等任何事情都很有用。否则你可能需要运行多个兔子

  • 每个 RabbitMQ 服务器都能够创建称为虚拟主机 (vhosts) 的虚拟消息代理。每个本质上都是一个迷你 RabbitMQ 服务器,有自己的队列、交换和绑定等,更重要的是,有自己的权限

有关详细信息参考:https://livebook.manning.com/book/rabbitmq-in-action/chapter-2/

答案 1 :(得分:0)

在RabbitMQ中,虚拟主机是实体的逻辑组,它们类似于Apache中的虚拟主机或Nginx中的服务器块。 虚拟主机使用rabbitmqctl或HTTP API创建,它们提供逻辑分组和资源分离。 每个虚拟主机都有一个名称。当AMQP 0-9-1客户端连接到RabbitMQ时,它指定要连接的vhost名称。 如果身份验证成功并且提供的用户名被授予vhost权限,则建立连接。

答案 2 :(得分:-3)

对于mi来说,这个概念很重要

逻辑和物理分离

虚拟主机提供逻辑分组和资源分离。物理资源的分离不是虚拟主机的目标,应将其视为实现细节。