消息队列核心原理(三):RabbitMQ核心原理

目录:

消息队列核心原理(一):消息中间件与协议介绍
消息队列核心原理(二):Kafka核心原理
消息队列核心原理(三):RabbitMQ核心原理

RabbitMQ核心概念

之前我们说了Kafka的核心概念,其实这里大同小异,相似的地方我就简要提一下,重点是不同的地方。

  • Broker
  • Producer
  • Consumer
  • Message
    • 生产消费的内容 ,由消息头,消息体,属性配置构成
  • Queue
    • 用于存放消息的容器,对于RabbitMQ的所有消息,均需要存放在Queue里面
  • Channel信道
    • 全双工,支持多路复用,可以发布、订阅、接收消息
    • 该信道基于TCP连接,但是是虚拟连接的,是复用的TCP的连接
  • Connection连接
    • 一个封装在Socket层面的连接,理论上一个socket可以有多个Channel
  • Exchange交换机
    • 生产者将消息发送给交换机,交换机再将消息转发到一个或者多个queue中。交换机有多个,所以与queue的关系是多对多。
  • RoutingKey路由键
    • 生产者将消息发送给交换机,一般会指定RoutingKey,用来确定路由规则
    • 最大长度为255Byte
  • Binding
    • 通过将交换机和Queue绑定起来,RabbitMQ才会知道怎么分配消息。当然是根据BindingKey去路由,而这个BindingKey是提前指定的。
  • Virtual Host Machine
    • 用于隔离环境:比如测试环境,生产环境,开发环境。
    • 用于隔离业务:比如支付业务,日志业务的隔离
    • 要注意的是,每个VM数据都是不互通的。一个VM不能有相同的交换机名称和队列名称。

所以,根据上述名词的解释,可以大致理清一下流程:

生产者产生消息---->指定RoutingKey,封装Socket进行连接,可以有多个信道---->消息交给交换机,交换机通过一定的规则检查RoutingKey,与BindingKey进行匹配----->匹配成功后将消息交给Queue---->消费者进行消费

Exchange交换机

特点:

  1. 只能转发,不能存储
  2. 交换机机型有多种,与Queue的关系是多对多
  3. 交换机类型:Direct Exchange(点对点)、Fanout Exchange&#x
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值