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. 高可用集群:支持镜像队列、分布式集群,可实现故障自动转移,避免单点故障。
相关推荐
zjxtxdy1 小时前
SPI通信协议
笔记·单片机
传奇开心果编程3 小时前
【springboot基础语法学与练】第 1 课:从零开始
java·spring boot·后端·学习
扶风ff3 小时前
练题簿小程序:家庭在线练题,课后复习更简单
学习·小程序
传奇开心果编程3 小时前
【Flutter入门练中学】第2课:布局系统
学习·flutter·ui
彧azz3 小时前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试
一尘之中4 小时前
指挥控制中心与指控系统:概念、应用、厂商与DDS技术全景
学习·架构·ai写作
aramae4 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
bessyon4 小时前
信息透明度与决策效率:一个技术视角的分析
笔记
一条破秋裤4 小时前
测试A学习顺序
学习
传奇开心果编程4 小时前
【Jetpack Compose基础语法学与练】第8课 rememberSaveable,页面旋转/系统重建保留状态
android·学习·ui·kotlin·android jetpack