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

更重要的是,他拥有自己的权限机制,这使得你能够安全地使用一个RabbitMQ服务器来服务众多的应用程序

vhost就像是虚拟机之与物理服务器一样:他们在各个实例间提供逻辑上的分离,允许你为不同程序安全保密地运行数据,它既能将同一个Rabbit的众多客户区分开来,又可以避免队列和交换器命名冲突

vhost是AMQP概念的基础,你必须在连接时进行指定

RabbitMQ包含了一个开箱即用的默认vhost:”/“,如果你不需要多个vhost,那么就使用默认的吧,使用缺省的guest用户名和密码guest就可以访问默认的vhost

当你在RabbitMQ集群上创建vhost,整个集群上都会创建该vhost,vhost不仅消除了为基础架构中的每一层运行一个RabbitMQ服务器的需要,同样也避免了为每一层创建不同集群

Rabbitmq~对Vhost的配置

rabbitmq里有一些概念我们要清楚,如vhost,channel,exchange,queue等,而前段时间在部署rabbitmq环境时启用了虚拟主机vhost,感觉他主要是起到了消息隔离的作用,下面分别再说一下它们的知识。

VHost

vhost去做第一层的区分,虚拟主机,工作组等,它默认是/

添加自己项目的Vhost

添加成功后,在列表里可以显示

添加建立一个用户,设置密码

把用户添加到对应的VHost组里,注意连接时也要使用VHost参数,如果没有特别设置,可以不指定它,默认就是/

channel

创建了客户端到Broker之间的连接后,客户端还是不能发送消息的。需要为每一个Connection创建Channel,AMQP协议规定只有通过Channel才能执行AMQP的命令。一个Connection可以包含多个Channel。之所以需要Channel,是因为TCP连接的建立和释放都是十分昂贵的,如果一个客户端每一个线程都需要与Broker交互,如果每一个线程都建立一个TCP连接,暂且不考虑TCP连接是否浪费,就算操作系统也无法承受每秒建立如此多的TCP连接

Exchange

有多种类型,我们在发布和订阅时,要指定这些类型,一般我们会使用性能更好的direc,或者更灵活的,支持通配符的topic

在客户端连接时,需要指定一下VHost

            exchangeName = options.ExchangeName;mqServerHost = options.MqServerHost;userName = options.UserName;password = options.Password;            var factory = new ConnectionFactory(){Uri = new Uri(mqServerHost)};factory.VirtualHost = options.VirtualHost;

好了,本讲主要介绍了如何去配置VHost和如何去连接它!

本文参考https://blog.csdn.net/wangnan9279/article/details/71425683

https://www.cnblogs.com/lori/p/7852534.html

转载于:https://blog.51cto.com/lookingdream/2118640

RabbitMQ-理解消息通信-虚拟主机和隔离相关推荐

  1. .Net RabbitMQ之消息通信 构建RPC服务器

    1.消息投递服务 RabbitMQ是一种消息投递服务,怎么理解这句话呢?即RabbitMQ即不是消息的生产者,也是消息的消费者.他就像现实生活中快递模式,消费者在电商网站上下单买了一件商品,此时对应的 ...

  2. RabbitMq 虚拟主机 virtual-host ,Springboot 中使用 RabbitMq 虚拟主机 virtual-host

    文章目录 RabbitMq 虚拟主机 virtual-host ,Springboot 中使用 RabbitMq 虚拟主机 virtual-host 1.在RabbitMQ 控制台中创建虚拟主机 2. ...

  3. springboot集成rabbitMQ实现消息的推送

    RabbitMQ消息中间件组件,目前比较流行的消息中间件有:RabbitMQ.RocketMQ.ActiveMQ.Kafka等. 我的代码中用的是RabbitMQ,先介绍几个概念: 一:消息队列的特性 ...

  4. 服务器托管和虚拟主机区别,虚拟主机和托管主机的区别是什么

    有许多不同的托管和虚拟主机,托管价格是不同的. 虚拟主机的普及率非常高,大多数网民都很熟悉,而且这个概念很容易理解,因为虚拟主机相对便宜,而且用户的技术要求也不高.只要您了解简单的网络技术,您就可以轻 ...

  5. 基于 RabbitMQ 的消息平台入门与实战

    RabbitMQ 作为目前一个轻量级的消息中间件,在目前的企业级应用.微服务应用中充当着非常重要的角色,特别是在一些典型的应用场景,比如业务模块解耦.异步通信.限流.延时处理等场景均有广泛的应用. 本 ...

  6. 阿里云服务器和独享云虚拟主机有什么区别?应该如何选择?

    有很多新手朋友搞不清楚阿里云的云虚拟主机和云服务器有什么区别?特别是对于应用场景为建站的用户来说,往往不知道应该如何选择?下面就为大家解释下这二者有什么不同,我们应该如何选择? 首先,阿里云独享云虚拟 ...

  7. 云服务器和虚拟主机和VPS都是什么意思?到底有啥区别呢?

    我们公司最近打算上线部署一款客户管理系统需要租一个服务器.结果在选购时,还是纠结了好久,不知道要买云服务器还是虚拟主机.更搞不清楚云服务器,虚拟主机,VPS都是什么意思,到底之间有啥区别呢? 最后查了 ...

  8. RabbitMQ中的虚拟主机、交换机、消息队列、绑定、消息

    虚拟主机(virtual host ) 虚拟地址,用于进行逻辑隔离,最上层的消息路由,一个 virtual host 里面可以有若干个 exchange 和 queue,但是里面不能有相同名称的 ex ...

  9. RabbitMQ第二话 -- Springboot基于四种Exchange(Direct、Fanout、Topic、Heders、延时队列)的实现和多虚拟主机下的生产消费者实现

    本文主要分享RabbitMQ exchange类型的功能和使用.RabbitMQ延时队列.一个springboot服务发送消息到多虚拟主机 1.RabbitMQ exchange exchange交换 ...

  10. java虚拟主机地址,如何理解JAVA虚拟主机

    其实虚拟主机也可以称之为网站空间,就是把一台运行在互联网上的物理服务器,划分为多个虚拟服务器,想要知道更多虚拟服务器的消息就可以看看这篇文章吧. Java虚拟主机,顾名思义就是虚拟主机的一种,主要用于 ...

最新文章

  1. 中国AI专利申请量占全球74%,腾讯、百度、OPPO前五
  2. C++ 虚函数成员和纯虚函数
  3. 使用 PHPMAILER 发送邮件实例
  4. 高维数据使用npy格式保存
  5. 数字图像处理形态学运算
  6. 之全能忙内_闪闪发光刘耀文,全能忙内初长成,西南狼崽变狼王
  7. python通过ip池爬_Python爬虫 | IP池的使用
  8. .NET程序员走向高端必读书单汇总
  9. C++ primer第十八章 18.1小结 异常处理
  10. mysql 数据库event_mysql数据库事件调度(Event)
  11. c++ int8_t转int_c专题之指针-----什么是指针?
  12. 周鸿祎:不得不说的话
  13. 两名黑客因发现特斯拉漏洞获Model 3一辆和3.5万美元奖金
  14. [微博]页面table 闪动问题解决
  15. web前端制作网页步骤以及制作网页学习教程
  16. Zebra打印机,中文转ZPL指令的.net实现,替换FNTHEX32.DLL
  17. 还记得那个提速8倍的IDEA插件吗?VS Code版本也发布啦!!
  18. 苹果CMS绑定分类失败,刷新就丢失!
  19. 网络协议篇之SNMP协议(二)—— 管理信息库MIB及OID
  20. Navicat Premium 15使用教程

热门文章

  1. mysql 命令之工作小结
  2. Cloud Container Service experimentation
  3. 【GStreamer开发】GStreamer基础教程05——集成GUI工具
  4. 【会议】2009-1-6
  5. vue项目解决: Invalid prop: type check failed for prop “index“问题
  6. 线程和进程有什么区别(简单介绍)
  7. gcc/g++/make/cmake/makefile/cmakelists的恩恩怨怨
  8. 多线程等待/通知机制
  9. 修改MySQL中字段的类型和长度
  10. 异常Throwable类