美文网首页RabbitMQPython程序员
RabbitMQ-理解消息通信-虚拟主机和隔离

RabbitMQ-理解消息通信-虚拟主机和隔离

作者: GhostStories | 来源:发表于2017-04-01 10:40 被阅读197次

每个RabbitMQ服务器都能创建虚拟的消息服务器,我们称之为虚拟主机(vhost)每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的队列、交换器和绑定等等

欢迎访问本人博客:http://wangnan.tech

多租户模式:虚拟主机和隔离

概述

  • 每个RabbitMQ服务器都能创建虚拟的消息服务器,我们称之为虚拟主机(vhost)每一个vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的队列、交换器和绑定等等
  • 更重要的是,他拥有自己的权限机制这使得你能够安全地使用一个RabbitMQ服务器来服务众多的应用程序
  • vhost就像是虚拟机之与物理服务器一样:他们在各个实例间提供逻辑上的分离,允许你为不同程序安全保密地运行数据,它既能将同一个Rabbit的众多客户区分开来,又可以避免队列和交换器命名冲突
  • vhost是AMQP概念的基础,你必须在连接时进行指定
  • RabbitMQ包含了一个开箱即用的默认vhost:"/",如果你不需要多个vhost,那么就使用默认的吧,使用缺省的guest用户名和密码guest就可以访问默认的vhost
  • 当你在RabbitMQ集群上创建vhost,整个集群上都会创建该vhost,vhost不仅消除了为基础架构中的每一层运行一个RabbitMQ服务器的需要,同样也避免了为每一层创建不同集群

如何创建vhost

vhost和权限控制非常独特,他们是AMQP中唯一无法通过AMQP协议的基元(不同与队列,交换器和绑定)

创建vhost

你需要通过RabbitMQ的安装路径下的./sbin/目录中的rabbitmqctl工具来创建

运行:

rabbitmqctl add_vhost[vhost_name]

可以创建一个vhost,其中[vhost_name]就是你想要创建的vhost

删除vhost

rabbitmqctl delete_vhost[vhsost_name]

查看Rabbit服务器上运行着那些vhost

rabbitmqctl list_vhost

你就会看到如下所示的内容

$ ./sbin/rabbitmqctl list_vhosts
Listing vhosts ...
/
oak
sycamore
...done.

管理远程RabbitMQ节点

-n rabbit@[server_name]

rabbit表示Erlang应用程序名称
[server_name]表示ip

(注:内容整理自《RabbitMQ实战》)

相关文章

网友评论

    本文标题:RabbitMQ-理解消息通信-虚拟主机和隔离

    本文链接:https://www.haomeiwen.com/subject/lociottx.html