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

【kafka】消息队列

什么是消息队列

消息队列 (Message Queue, MQ), 字面理解就是一个队列,拥有先进先出(First Input First OutPut, FIFO)的特性, 作用于不用进程或线程之间的通信

主要作用有哪些

1 应用解耦

多个应用通过消息队列可以对相同的消息进行处理, 逻辑上相互独立做到解耦 (注意: 业务上还是会相互影响, 解的只是工程上的耦)

2 异步处理

这里结合串行-并行-异步理解, 场景用户注册发短信和发邮件
串行 注册写数据库[10s], 发送短信[10s], 发送邮件[10s], 依次执行完, 给用户返回结果, 总耗时30s
并行 注册写数据库[10s], 然后并行发短信-发邮件[10s], 给用户返回结果, 总耗时20s
异步 注册数据库[10s], 写消息队列[忽略不计], 给用户返回结果, 总耗时10s, 后续短信服务-邮件服务消费消息执行自己的逻辑

从上面看出异步明显减少RT, 提升吞吐, 但也明显增加了不一致

3 数据限流

瞬时流量过大会冲垮服务, 可以将请求写入消息队列, 后续服务再慢慢消费
这样有以下优点:
1 在请求和服务中间架设一层缓冲, 极大减轻服务压力
2 队列可以设置长度, 遵循FIFO, 超出长度触发拒接策略, 直接给用户拒绝响应

4 消息通讯

消息队列具有高效通信机制, 在点对点通信和聊天通信中应用也很广泛

http://www.xdnf.cn/news/1206001.html

相关文章:

  • Java 数学工具类 Math
  • redis未授权getshell四种方式
  • Leetcode——11. 盛最多水的容器
  • 利用DataStream和TrafficPeak实现大数据可观察性
  • 【Git】Linux-ubuntu 22.04 初步认识 -> 安装 -> 基础操作
  • Prompt工程记录
  • MCU+RTOS调试
  • STM32启动流程
  • opencv 模块裁剪 按需安装指定模块
  • MCU 中的 PWM(脉冲宽度调制)是什么?
  • 未授权访问复现
  • Python动态规划:从基础到高阶优化的全面指南
  • 未授权访问漏洞靶场(redis,MongoDB,Memcached...)
  • Unity_UI_NGUI_锚点组件
  • 项目如何按时交付?重点关注的几点
  • 【Linux操作系统】简学深悟启示录:Linux环境基础开发工具使用
  • GoLand 项目从 0 到 1:第三天 —— 图数据库版本管理方案调研与中间件部署
  • Dify-14: 工作流API端点
  • 在虚拟机ubuntu上修改framebuffer桌面不能显示图像
  • STM32F4—电源管理器
  • YOLOv11改进:添加SCConv空间和通道重构卷积二次创新C3k2
  • 时间数字转换器TDC的FPGA方案及核心代码
  • 数分思维10:用户增长
  • 小智源码分析——音频部分(二)
  • 机器学习sklearn:决策树的参数、属性、接口
  • mp核心功能
  • S7-200 SMART 通过本体 RS485 口与 DP01 上传 / 下载程序(网口故障)
  • Java项目:基于SSM框架实现的进销存管理系统【ssm+B/S架构+源码+数据库+毕业论文+远程部署】
  • 我从 Web2 转型到 Web3 的 9 条经验总结
  • 架构实战——互联网架构模板(“存储层”技术)