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

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

相关推荐
小智老师PMP2 小时前
2026深度解析|PMP第八版与NPDP核心侧重点本质区别(管理类证书怎么选)
开发语言·分布式·算法·职场和发展·产品经理
会周易的程序员4 小时前
5Draft(五帝)测试报告
服务器·c++·分布式·raft·共识算法·共识·算力服务器
想要打 Acm 的小周同学呀10 小时前
Kafka消息队列出现挤压如何解决?
分布式·kafka
stark张宇14 小时前
分布式事务最全图解(6种方案):从强一致的2PC到最终对账,彻底搞懂数据一致性
分布式·后端
会周易的程序员14 小时前
5Draft使用说明书
服务器·c++·分布式·raft·共识
富士康质检员张全蛋14 小时前
Kafka实战 自定义分区器 几种常见的分区器
分布式·kafka
努力努力再努力wz15 小时前
【Redis入门系列】:从 RESP 协议到 redis-plus-plus:Redis 客户端编程与 C++ 接口设计
开发语言·数据库·c++·redis·分布式·缓存·架构
starzy199015 小时前
Flink基础之Flink批流数据读取处理案例剖析:从文件到 Kafka 的完整代码
大数据·flink·kafka
青禾83715 小时前
Git 与 SVN 完全指南:从集中式到分布式的版本控制
分布式·git·svn
2301_8009549916 小时前
Git 版本控制核心概念详解:从集中式到分布式
分布式·git