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. 高可用集群:支持镜像队列、分布式集群,可实现故障自动转移,避免单点故障。
相关推荐
我的xiaodoujiao5 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具
世人万千丶6 小时前
鸿蒙Flutter Flexible与Expanded的区别
学习·flutter·harmonyos·鸿蒙
香辣牛肉饭6 小时前
【算法】动态规划 最长公共子序列(LCS)
经验分享·笔记·算法·动态规划
迷途呀7 小时前
Python:函数中的参数类型
开发语言·笔记·python·langchain·nlp
YM52e7 小时前
鸿蒙Flutter Center居中组件:Align对齐详解
android·学习·flutter·华为·harmonyos·鸿蒙
依然范特东8 小时前
动手学深度学习笔记--卷积层、微调
人工智能·笔记·深度学习
金伟API10249 小时前
SQL Server基础学习笔记
笔记·学习
MartinYeung59 小时前
[论文学习]MiCA:比LoRA和全参数微调学到更多知识
深度学习·学习·机器学习
砚凝霜10 小时前
软考网络工程师|第 1 章 计算机网络基础 完整备考笔记
网络·笔记·计算机网络