【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 消息通讯

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

相关推荐
SoleMotive.4 小时前
谢飞机爆笑面经:Java大厂3轮12问真题拆解(Redis穿透/Kafka分区/MCP Agent)
redis·spring cloud·kafka·java面试·mcp
程序猿阿伟6 小时前
《分布式追踪Span-业务标识融合:端到端业务可观测手册》
分布式
爆米花byh6 小时前
在RockyLinux9环境的Kafka4.1.1单机版安装(无ZK依赖)
中间件·kafka
yumgpkpm7 小时前
预测:2026年大数据软件+AI大模型的发展趋势
大数据·人工智能·算法·zookeeper·kafka·开源·cloudera
消失的旧时光-19438 小时前
第十六课实战:分布式锁与限流设计 —— 从原理到可跑 Demo
redis·分布式·缓存
若水不如远方8 小时前
分布式一致性(三):共识的黎明——Quorum 机制与 Basic Paxos
分布式·后端·算法
DemonAvenger8 小时前
Kafka消费者深度剖析:消费组与再平衡原理
性能优化·kafka·消息队列
会算数的⑨9 小时前
Kafka知识点问题驱动式的回顾与复习——(一)
分布式·后端·中间件·kafka
张小凡vip9 小时前
Kafka--使用 Kafka Connect 导入/导出数据
分布式·kafka
回忆是昨天里的海9 小时前
kafka概述
分布式·kafka