RabbitMQ 概念介绍

RabbitMQ 概念介绍

  1. 信道
    信道是生产者/消费者与 RabbitMQ 通信的渠道。信道是建立在 TCP 连接上的虚拟连接,什么意思呢?就是说 rabbitmq 在一条 TCP 上建立成百上千个信道来达到多个线程处理,这个 TCP 被多个线程共享,每个线程对应一个信道,信道在 RabbitMQ 都有唯一的 ID ,保证了信道私有性,对应上唯一的线程使用。

  2. 疑问
    为什么不建立多个 TCP 连接呢?原因是 rabbit 保证性能,系统为每个线程开辟一个 TCP 是非常消耗性能,每秒成百上千的建立销毁 TCP 会严重消耗系统。所以 rabbitmq 选择建立多个信道(建立在 tcp 的虚拟连接)连接到 rabbit 上。
    从技术上讲,这被称之为“多路复用”,对于执行多个任务的多线程或者异步应用程序来说,它非常有用。

  3. 组成要素

  • 交换器 路由键 队列 绑定关系
    交换器: 相当于交换机,类似于路由器 包含四种类型: direct(点对点),fanout(广播),topic(主题订阅),header(非路由键匹配,功能和direct类似,很少用)。
    路由键: 作用于交换器和队列的绑定使用 (routing_key 和 绑定键 binding_key 的最大长度是 255 个字节)
    队列: 队列是消息发送和接收的通道
    绑定关系: 队列通过路由键(routing key,某种确定的规则)绑定到交换器,生产者将消息发布到交换器,交换器根据绑定的路由键将消息路由到特定队列,然后由订阅这个队列的消费者进行接收。
  • 生产者 消费者 消息
    生产者: 消息的创建者,发送到 rabbitmq
    消费者: 连接到 rabbitmq,订阅到队列上,消费消息,持续订阅(basicConsumer)和单条订阅(basicGet).
    消息: 包含有效载荷和标签,有效载荷指要传输的数据,标签描述了有效载荷,并且 rabbitmq 用它来决定谁获得消息,消费者只能拿到有效载荷,并不知道生产者是谁。
组成要素关系图.png

你可能感兴趣的:(RabbitMQ 概念介绍)