RabbitMQ学习笔记-定义与作用

本文参考自:从入门到精通:RabbitMQ全面解析与实战指南。在分布式系统架构中,消息中间件是实现服务解耦、流量缓冲、异步通信的核心组件。而RabbitMQ作为基于AMQP协议的开源的消息代理。凭借其高可靠性、灵活路由、跨平台兼容等特性,成为金融、电商、物流等行业企业级应用的首选。这里我先从基础学起。

1、核心定义

RabbitMQ是一个开源的消息中间件,用于实现削峰填谷和异步解耦。生产者端发送消息之后,无需等待消费者的即时处理,而是由rabbitmq暂存并且可靠的传递给消费者。比如在短信日志等非实时场景下,将请求放入队列进行再由消费者端异步执行。它的核心作用可以看作一种"消息中转站"。

2、解决的核心问题

  1. 系统解耦:服务间调用分为同步调用和异步调用两种。同步调用的系统耦合度高,需要等待目标服务返回结果。目标服务出现报错、超时等都会导致整个流程失败。异步调用通过RabbitMQ等中间件,比如登录系统后只需发送"短信推送"消息,短信服务订阅消息即可,服务间无需直接关联。
  2. 流量削峰:秒杀等场景下,用户请求会激增,直接冲击数据库可能导致系统崩溃。通过MQ可以把所有请求先暂存,然后消费者按照能处理的速度慢慢消费。
  3. 异步通信:部分的业务无需同步处理,比如客户登录后发送的欢迎短信,异步处理可以直接提高系统主流程的响应速度。
  4. 跨系统数据同步:多个系统间需要实时同步数据,比如ERP和WMS、用户系统与订单系统。RabbitMQ可通过广播机制实现数据实时流转,且支持可视化配置路由规则。

3、核心优势

相对于Kafka、RocketMQ等消息中间件,RabbitMQ的核心优势在于:

  1. 高可靠性:它原生的支持队列持久化、生产者确认、消费者确认等机制确保消息不丢失。
  2. 灵活路由:提供4种核心交换机类型,支持精准匹配、广播、模糊匹配等多种路由策略。
  3. 多协议支持:兼容AMQP1.0、MQTT、STOMP等主流通信协议,支持多语言开发。
  4. 轻量易运维:部署简单(Docker可10分钟启动),提供直观的Web管理界面,支持CLI命令行工具和监控插件。
  5. 高可用集群:支持镜像队列、分布式集群,可实现故障自动转移,避免单点故障。
相关推荐
库玛西1 小时前
深入浅出传输层:UDP 与 TCP 协议全景指南
linux·服务器·网络·c++·笔记·tcp/ip·udp
知产xiao_xin8 小时前
知识产权入门 —— 相关权(邻接权)
经验分享·笔记·知识产权
自小吃多9 小时前
DXF文件导入与PCB板框定义笔记
笔记·嵌入式硬件
是隼人10 小时前
buuctf-pwn xdctf2015_pwn200题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
jike_202610 小时前
iPhone采访录音同时拍现场照片的APP:图片音频同步记录实测
笔记·智能手机·音视频·语音识别
大衛說10 小时前
《Python 从入门到精通》系列总览与学习路线
开发语言·python·学习
吃好睡好便好11 小时前
查找函数的使用
学习·算法·matlab·生活·查找函数
2601_9609067211 小时前
1X发布自己的世界模型1XWM
mysql·mongodb·rabbitmq·memcached
学运维的Kysan11 小时前
暑假运维学习打卡第二十九天8.29
学习
————A12 小时前
Agent 接收用户上传文件
人工智能·笔记·python·状态模式