RabbitMQ中vhost的含义是什么?

RabbitMQ中vhost的含义是什么?,rabbitmq,Rabbitmq,当我为rabbitmq用户设置权限时,会输出vhost: [root@ha-node1 my.cnf.d]# rabbitmqctl set_permissions openstack ".*" ".*" ".*" Setting permissions for user "openstack" in vhost "/" ... 设置权限时,vhost的含义是什么?它有什么功能?在RabbitMQ中,虚拟主机是实体的逻辑组,它们类似于Apache中的虚拟主机或Nginx中的服务器块。 虚拟主

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

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

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

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

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

逻辑和物理分离


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

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

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

  • 这对任何事情都很有用,从在同一个兔子上分离多个客户到避免队列和交换上的命名冲突。否则,您可能需要运行多个兔子

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


有关详细信息,请参阅:

欢迎使用SO!请考虑加入你自己的解释来回答这个问题。因为答案是直接抄袭的。