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. 高可用集群:支持镜像队列、分布式集群,可实现故障自动转移,避免单点故障。
相关推荐
今儿敲了吗13 小时前
CO——CPU
笔记
今儿敲了吗13 小时前
Python ——第三方包
笔记·python
圆奋奋13 小时前
FreeRTOS学习(三)- 任务调度模块
学习·开源·freertos
吃着火锅x唱着歌13 小时前
Effective C++ 学习笔记 条款40 明智而审慎地使用多重继承
c++·笔记·学习
落知秋14 小时前
RUST中的trait是什么?
笔记·rust
xian_wwq14 小时前
【学习笔记】Prompt Engineering 没死,只是它不再够用了-2/16
笔记·学习·prompt
天吾cc14 小时前
RTT-ADC
单片机·嵌入式硬件·学习
kaixin_啊啊15 小时前
test_机器学习算法学习
学习·算法·机器学习
m4Rk_15 小时前
【论文阅读】Agent 记忆机制(34):MemoryBank——用遗忘曲线管理可强化的长期对话记忆
论文阅读·人工智能·学习·开源·github
210Brian15 小时前
STM32学习笔记(五)EXTI外部中断(上)
笔记·stm32·学习