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

每个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

原文地址:http://blog.51cto.com/lookingdream/2118640

时间: 2024-07-30 20:13:38

RabbitMQ-理解消息通信-虚拟主机和隔离的相关文章

RabbitMQ(二):理解消息通信RabbitMQ

原文:RabbitMQ(二):理解消息通信RabbitMQ 一.消费者.生产者和信道 生产者(producer):生产者创建消息,然后发布(发送)到代理服务器(RabbitMQ),可以说发送消息的程序就是生产者.什么是消息?消息包含两部分:有效载荷和标签.有效载荷就是传输的数据,可以是任何内容,包括json数据和图片等等.而标签(一个叫交换器名称和可选的主题标记)描述了有效载荷,RabbitMQ用它来决定谁将获得这个消息. 消费者(consumer):消费者就是接收消息并处理消息的程序,他们连接

RabbitMQ实战:理解消息通信

本系列是「RabbitMQ实战:高效部署分布式消息队列」书籍的总结笔记. 前段时间总结完了「深入浅出MyBatis」系列,对MyBatis有了更全面和深入的了解,在掘金社区也收到了一些博友的喜欢,很高兴.另外,短暂的陪产假就要结束了,小宝也二周了,下周二就要投入工作了,希望自己尽快调整过来,加油努力. 从本篇开始总结「RabbitMQ实战」系列的阅读笔记,RabbitMQ是一个开源的消息代理和队列服务器,可以通过基本协议在完全不同的应用之间共享数据,可以将作业排队以便让分布式服务进行处理. 本篇

.Net RabbitMQ之消息通信

1.消息投递服务 RabbitMQ是一种消息投递服务,怎么理解这句话呢?即RabbitMQ即不是消息的生产者,也是消息的消费者.他就像现实生活中快递模式,消费者在电商网站上下单买了一件商品,此时对应的生产者(商家)则生产了一件货物(概念上的生产,可能已经生产好了),接着生产者(商家)将货物发送给快递公司,因为消费者下单了这个货物,相当于订阅了这件货物,所以快递公司将会把这件货物发送给对应的消费者.RabbitMQ就相当于这里面的快递公司.服务在生产者和消费者之间建立桥梁,即通信. 2.Rabbi

RabbitMQ介绍2 - 理解消息AMQP

理解消息AMQP通信.官方解释: http://www.rabbitmq.com/tutorials/amqp-concepts.html 概念:生产者producer,消费者consumer,队列queue,交换器exchange,路由键routing key,绑定键binding key. producer发布消息,消息经过交换器传播放入队列,消费者从队列中得到消息. ConnectionFactory, connection, channel信道.connectionFactory用来建立

RabbitMQ详解(二)------消息通信的概念

RabbitMQ详解(二)------消息通信的概念 消息通信,有很多种,邮箱 qq 微信 短信等,这些通信方式都有发送者,接受者,还有一个中间存储离线消息的容器.但是这些通信方式和RabbitMQ的通信模型是不一样的,比如邮件,邮件服务器基于POP3/SMTP协议,通信双方需要明确指定,并且发送的邮件内容有固定的结构.而RabbitMQ服务器基于AMQP协议,这个协议是不需要明确指定发送方和接受方的,而且发送的消息也没有固定的结构,甚至可直接存储二进制数据,并且和邮件服务器一样,也能存储离线消

RabbitMQ实战:消息通信模式和最佳实践

本系列是「RabbitMQ实战:高效部署分布式消息队列」书籍的总结笔记. 通过前2篇的介绍,了解了消息通信的主要元素和交互过程,以及如何运行和管理RabbitMQ,这篇将站在开发模式的角度理解「面向消息通信」带来的好处,以及在各种场景下的最佳实践. 通过介绍,你会了解到: 面向消息通信的好处 发后即忘模型 用RabbitMQ实现RPC 面向消息通信的好处 主要从异步状态思维.处理能力扩展性.集成复杂度方面,说明面向消息通信的好处. 异步状态思维 当将消息通信集成到应用程序时,开发模式将从同步模型

RabbitMQ入门教程(十三):虚拟主机vhost与权限管理

原文:RabbitMQ入门教程(十三):虚拟主机vhost与权限管理 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/78702685 分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 虚拟主机vhost 每一个RabbitMQ服务器都能创建虚拟消息服务器,我们称之为虚拟主机.每一个vhost本质上是一个min

RabbitMQ学习笔记2-理解消息通信

消息包含两部分:1.有效载荷(payload) - 你想要传输的数据.2.标签(lable) - 描述有效载荷的相关信息,包含具体的交换器.消息的接受兴趣方等. rabbitmq的基础流程如下: RabbitMQ的客户端和服务端通过channel与RabbitMQ服务器进行通信. Channel(信道):程序和RabbitMQ之间的连接是通过channel,channel是基于TCP协议之上的?, 一个TCP连接可以有多个channel,可以比喻成如下:一根大电缆里面有很多根小的电线,大电缆就是

如何简单理解虚拟主机?

什么是虚拟主机?对于初学者的我而言,首先就是百度,度娘告诉我:虚拟主机是在网络服务器上分出一定的磁盘空间供用户放置站点.应用组件等,提供必要的站点功能.数据存放和传输功能.所谓虚拟主机,也叫"网站空间",就是把一台运行在互联网上的服务器划分成多个"虚拟"的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW.FTP.E-mail等)功能.但是由于太过专业,对于菜鸟的我来说简直就是云里雾里,知其然不知其所以然.于是我还是决定不齿下问,求助于