rabbitmq专题01-AMQP协议的基本概念

Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。

rabbitmq中AMQP的模型概念:

Broker:接收和分发消息的应用。

Virtual host:出于多租户和安全因素设计的,把AMQP的基本组件划分到一个虚拟的分组中,类似于网络中的namespace的概念。当多个不同的用户使用同一个rabbitmq server的服务的时候,可以划分多个 vhost,每个用户在自己的vhost创建 exchange/queue 等。每个vhost本质上是一个mini版的rabbitmq服务器,拥有自己的队列、交换器和绑定,更重要的是它拥有自己的权限机制。vhost之于rabbit就行虚拟机之于物理服务器一样,它们通过各个实例间提供逻辑上分离,允许你为不同的应用程序安全保密的运行数据。它既能将rabbit众多客户区分开,又可以避免队列和交换器的命名冲突。你可以只运行一个rabbit服务,然后按需启动和关闭vhost。vhost是AMQP感念的基础,你必须在连接时进行指定。默认vhost是:/ 。

Connection:publisher / consumer 和 broker 之间的TCP连接,断开连接的操作只会在client端操作。Broker不会断开连接,除非出现网络故障或broker服务出现问题。

Channel:如果每一次访问rabbitmq都会建立一个connection(TCP),在消息量大的时候会建立大量的connection连接,此时的开销大,效率低。Channel(信道)是在connection的内部建立的逻辑连接,如果应用程序支持多线程,通常每个thread建立独立的channel进行通讯。AMQP method包含了channel id,帮助客户端、message和broker识别channel,所以channel之间是完全隔离的。channel做为轻量级的connection极大的减少了操作系统建立 tcp connection的开销。

Exchange:message到达broker的第一站,根据分发规则,匹配查询表中的routingKey,分发消息到队列中。常用的类型有:direct、fanout、topic、header。

Queue:存放消息的容器,消费者会从消费queue中的消息。

Binding:exchange和queue之间的虚拟连接。bingding中可以包含routingKey。Binding信息被保存到exchange中的查询表中,用于message的分发依据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荆茗Scaler

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值