当前位置: 首页 > news >正文

消息队列经典应用场景

笔者心中,消息队列缓存分库分表是高并发解决方案三剑客。

在职业生涯中,笔者曾经使用过 ActiveMQ 、RabbitMQ 、Kafka 、RocketMQ 这些知名的消息队列 。

这篇文章,笔者结合自己的真实经历,和大家分享消息队列的七种经典应用场景。

1 异步&解耦

笔者曾经负责某电商公司的用户服务,该服务提供用户注册,查询,修改等基础功能。用户注册成功之后,需要给用户发送短信。

图中,新增用户发送短信都揉在用户中心服务里,这种方式缺点非常明显:

  1. 短信渠道不够稳定,发送短信会达到 5 秒左右,这样用户注册接口耗时很大,影响前端用户体验;

  2. 短信渠道接口发生变化,用户中心代码就必须修改了。但用户中心是核心系统。每次上线都必要谨小慎微。这种感觉很别扭,非核心功能影响到核心系统了。

为了解决这个问题,笔者采用了消息队列进行了重构。

  • 异步

    用户中心服务保存用户信息成功后,发送一条消息到消息队列 ,立即将结果返回给前端,这样能避免总耗时比较长,从而影响用户的体验的问题。

  • 解耦

    任务服务收到消息调用短信服务发送短信,将核心服务与非核心功能剥离,显著的降低了系统间的耦合度。

2 消峰

高并发场景下,面对突然出现的请求峰值,非常容易导致系统变得不稳定,比如大量请求访问数据库,会对数据库造成极大的压力,或者系统的资源 CPU 、IO 出现瓶颈。

笔者曾服务于神州专车订单团队,在订单的载客生命周期里,订单的修改操作先修改订单缓存,然后发送消息到 MetaQ ,订单落盘服务消费消息,并判断订单信息是否正常(比如有无乱序

http://www.lryc.cn/news/329638.html

相关文章:

  • 阿里云Salesforce CRM功能差异列表 - Winter‘24
  • WIN10系统下误删除了用户重启无法登录
  • 国内ip怎么来回切换:操作指南与注意事项
  • day72Html
  • C语言内存函数(超详解)
  • 2024年天津体育学院退役大学生士兵专升本专业考试报名安排
  • linux bypy 定时备份到百度网盘
  • 星光/宝骏/缤果/长安 车机CarPlay手机操作破解教程V2.0版本(无需笔记本、无需笔记本、无需笔记本)
  • Spring Web MVC的入门学习(一)
  • 如何使用Java语言发票查验接口实现发票真伪查验、票据ocr
  • CAPL实现关闭TCP连接的几种方式以及它们的区别
  • Git--08--Git分支合并操作
  • 深度学习训练中的种子设置
  • LLM:函数调用(Function Calling)
  • ssm 房屋销售管理系统开发mysql数据库web结构java编程计算机网页源码eclipse项目
  • MySQL使用ALTER命令创建与修改索引
  • 54 npm run serve 和 npm run build 输出的关联和差异
  • iOS —— 初识KVO
  • 什么是HTTP? HTTP 和 HTTPS 的区别?
  • 微信小程序如何进行npm导入组件
  • MySQL编程实战LeetCode经典考题
  • 发生播放错误,即将重试 jellyfin
  • BIONIOAIO
  • SpringSecurity学习总结(三更草堂)
  • C++20中的jthread
  • Xception模型详解
  • 【合合TextIn】AI构建新质生产力,合合信息Embedding模型助力专业知识应用
  • Flutter 拦截系统键盘,显示自定义键盘
  • 内存泄漏是什么?如何避免内存泄漏?
  • linux 中的syslog的含义和用法