栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMQ笔记

RabbitMQ笔记

一 概念 RabbitMQ

消息队列,是一种跨进程的通信机制,用于上下游传递消息。

RabbitMQ作用 流量消峰

正常情况下订单系统每秒处理一万次订单,高峰期时,如果有两万次下单操作系统是处理不了的,此时可以使用消息队列做缓冲,把一秒内下的订单分散成一段时间来处理,先扣钱,当完成订单服务后通知用户即可,虽然不能做到及时通知,但是比不能下单的体验要好。

应用解耦

订单系统的完成依赖有库存系统、物流系统、支付系统,当任何一个子系统出故障,都会造成下单操作异常。使用消息队列后,如果某个系统发生故障,可以将该系统要处理的内存被缓存在消息队列中,用户的下单操作可以正常完成。

异步处理

有些服务间调用是异步的,例如 A 调用 B,B 需要花费很长时间执行,但是 A 需要知道 B 什么时候可以执行完.
使用队列后,调用 B 服务后,只需要监听 B 处理完成的消息,当 B 处理完成后,会发送一条消息给 MQ,MQ 会将此消息转发给 A 服务,能及时的得到异步处理成功的消息。

工作原理

Broker

接收和分发消息的应用,RabbitMQ Server 就是 Message Broker

Virtual host

当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个 vhost,每个用户在自己的 vhost 创建 exchange/queue 等

Connection

publisher/consumer 和 broker 之间的 TCP 连接

Channel

Channel 是在 connection 内部建立的逻辑连接,Channel 作为轻量级的Connection 极大减少了操作系统建立 TCP connection 的开销

Exchange

message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到 queue 中去。常用的类型有:direct (point-to-point), topic (publish-subscribe) and fanout
(multicast)

Queue

消息最终被送到这里等待 consumer 取走

Binding

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/674012.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号