美文网首页
rabbitmq(二)原理

rabbitmq(二)原理

作者: V_da2a | 来源:发表于2018-10-04 17:37 被阅读0次

一.基本概念
1.1


image.png

可以看到提供方提供一个Broker(消息队列实体)当中的虚拟主机->>包含了Exchange(交换器)通过binding绑定一个队列Queue 客户端再通过连接不同渠道(Channel)给客户端提供消息
而一个消息队列又分几种模式

1.2
VirtualHost
虚拟主机。表示一批交换器,消息队列和相关对象。虚拟主机是共享相同的身份认证
和加密环境的独立服务器域。每个 vhost 本质上就是一个 mini 版的 RabbitMQ 服务器,拥有
自己的队列、交换器、绑定和权限机制。vhost 是 AMQP 概念的基础,必须在链接时指定,
RabbitMQ 默认的 vhost 是/
1.3
Channel 信道。
1,Channel 中文叫做信道,是 TCP 里面的虚拟链接。例如:电缆相当于 TCP,信道是
一个独立光纤束,一条 TCP 连接上创建多条信道是没有问题的。
2,TCP 一旦打开,就会创建 AMQP 信道。
3,无论是发布消息、接收消息、订阅队列,这些动作都是通过信道完成的。
1.4
交换器和队列的
交换器是通过路由键和队列绑定在一起的,如果消息拥有的路由键跟队列和交换器的
路由键匹配,那么消息就会被路由到该绑定的队列中。
也就是说,消息到队列的过程中,消息首先会经过交换器,接下来交换器在通过路由
键匹配分发消息到具体的队列中。
路由键可以理解为匹配的规则。
1.5 RabbitMQ 为什么需要信道?为什么不是 TCP 直接通

  1. TCP 的创建和销毁开销特别大。创建需要 3 次握手,销毁需要 4 次分手。
  2. 如果不用信道,那应用程序就会以 TCP 链接 Rabbit,高峰时每秒成千上万条链接
    会造成资源巨大的浪费,而且操作系统每秒处理 TCP 链接数也是有限制的,必定造成性能
    瓶颈。
  3. 信道的原理是一条线程一条通道,多条线程多条通道同用一条 TCP 链接。一条 TCP
    链接可以容纳无限的信道,即使每秒成千上万的请求也不会成为性能的瓶颈。

1.Direct(发布订阅 完全匹配)


image.png

rabbitmq默认队列
如图 Direct是根据交换器的routing key找到queues的
所以我们使用的时候消息接收就使用交换器名称,以及routingkey找到队列接收值

2.fanoutg(广播)


image.png

通过发送Exchange 将消息发送到所有绑定的队列中

3.topic


image.png

相关文章

网友评论

      本文标题:rabbitmq(二)原理

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