RabbitMQ-基础

RabbitMQ

同步调用

双方交互都是实时的,可以立即返回结果

问题

  1. 拓展性差:每次有新的需求,代码经常变动,不符合开闭原则
  2. 性能下降:调用者需要等待服务提供者分别执行后才返回结果,服务提供者很多情况下会影响最终业务响应时间
  3. 级联失败:其中某一个服务提供者出现错误,回滚整个业务(用户已经扣完款之后因为短信发送失败,从而整体回滚。这样是不对的)

异步调用

双方交互不是实时的,可以同时执行多个操作

异步调用方式基于消息通知的方式,一般包含三个角色

  1. 消息发送者:投递消息的人,原调用方
  2. 消息Broker:管理,暂存,转发消息
  3. 消息接收者:接受和处理消息的人,原服务提供方

优势

  1. 耦合度高
  2. 性能更好
  3. 业务拓展性抢
  4. 故障隔离,避免级联失败

问题

  1. 完全依赖Broker的可靠性,安全性和性能
  2. 架构复杂,后期维护和调试麻烦

技术选型

安装部署

dockerfile 复制代码
docker run \
 -e RABBITMQ_DEFAULT_USER=root \
 -e RABBITMQ_DEFAULT_PASS=root \
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 -d \
 rabbitmq:3.8-management

默认登录地址 https://ip:15672

基本概念

  • publisher :⽣产者,也就是发送消息的⼀⽅
  • consumer :消费者,也就是消费消息的⼀⽅
  • queue :队列,存储消息。⽣产者投递的消息会暂存在消息队列中,等待消费者处理
  • exchange :交换机,负责消息路由。⽣产者发送的消息由交换机决定投递到哪个队列。
  • virtual host :虚拟主机,起到数据隔离的作⽤。每个虚拟主机相互独⽴,有各⾃的exchange、queue
  • virtual host :虚拟主机,起到数据隔离的作⽤。每个虚拟主机相互独⽴,有各⾃的exchange、queue
相关推荐
珠***格1 小时前
Ⅱ型边缘网关|易部署、易扩容、易改造
大数据·人工智能·分布式·能源·边缘计算
无心水1 小时前
17、本地多模态|Qwen-VL离线私有化提取敏感PDF完全指南
人工智能·分布式·架构·openclaw·hermes
Solis程序员3 小时前
分布式 SingleFlight:从单机请求合并到集群级远程调用去重
分布式
填满你的记忆4 小时前
Kafka 面试题 Top40
分布式·kafka
oqX0Cazj24 小时前
Go-Zero数据库事务实战:本地事务+失败自动回滚+生产避坑+简单分布式事务方案
数据库·分布式·golang
团象科技4 小时前
出海技术团队分布式落地调研 海外云团队协作开发实操记录
分布式
段一凡-华北理工大学4 小时前
工业领域的Hadoop架构学习~系列文章22:Hadoop生态展望 - 面向未来的技术演进
大数据·人工智能·hadoop·分布式·学习·架构·高炉炼铁
snow@li4 小时前
RabbitMQ:详解(2026版)/ 基于 AMQP 协议的消息中间件
分布式·rabbitmq
北京阿尔泰科技厂家4 小时前
长距离分布式采集的新选择——NET9770系列以太网同步数据采集卡技术应用解析
分布式·以太网·传感器·信号采集·数据采集卡·自动化控制·工业测试测量
七夜zippoe4 小时前
DolphinDB分布式计算:MapReduce模
大数据·分布式·mapreduce·dolphindb·计算