RabbitMQ vs Kafka 简单总结

RabbitMQ vs Kafka 简单总结

text 复制代码
RabbitMQ:适合"派任务"
Kafka:适合"记事件流水账"

RabbitMQ 像什么?

像老板派活:

text 复制代码
订单创建
  ↓
派任务:扣库存
  ↓
派任务:发短信
  ↓
派任务:超时取消订单

特点:

text 复制代码
消息进 Queue
消费者消费
ACK 后消息一般删除

适合:

text 复制代码
发短信
发邮件
订单超时取消
异步下单
失败重试
延迟任务
业务解耦

核心概念:

text 复制代码
Exchange
Queue
RoutingKey
Binding
Consumer
ACK

Kafka 像什么?

像记流水账:

text 复制代码
10:00 订单创建
10:01 库存扣减
10:02 支付成功
10:03 Agent 生成限购决策

特点:

text 复制代码
消息写入 Topic
进入 Partition
消费者按 Offset 读取
消息消费后还会保留一段时间

适合:

text 复制代码
订单事件流
库存事件流
用户行为日志
风控事件
数据分析
Python Agent 异步分析
多系统订阅同一批事件

核心概念:

text 复制代码
Topic
Partition
Offset
Consumer Group
Producer
Consumer

核心区别表

对比 RabbitMQ Kafka
本质 消息队列 事件流平台
像什么 派任务 记流水账
消息消费后 通常删除 保留一段时间
多系统重复读 不方便 很方便
历史消息重放 不方便 很方便
顺序性 单队列单消费者较好保证 同一 Partition 内有序
高吞吐事件流 可以但不是最优 很适合
延迟任务 很适合 不如 RabbitMQ 自然

项目怎么用?

text 复制代码
Java 高并发秒杀事件 → Kafka → Python 多 Agent 分析

例如:

text 复制代码
订单创建事件
库存扣减事件
支付成功事件
商品爆单事件
风控异常事件

这些适合 Kafka。


text 复制代码
订单超时取消
短信通知
邮件通知
失败重试
库存回补任务

这些适合 RabbitMQ。


总结

text 复制代码
RabbitMQ = 让某个服务去干一件事。

Kafka = 把发生过的事记录下来,让很多服务都能看。
相关推荐
天河归来9 小时前
第三方接口不稳定,如何让核心任务继续完成
java·大数据
Knight_AL9 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
砚底藏山河11 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
猿究院_夏燊11 小时前
MySQL 的四种隔离级别
java·数据库·mysql
码流子12 小时前
移动收费怎么做?手持终端+App+收费中心的架构实践
java·开发语言·架构
霸道流氓气质12 小时前
AI 流式对话与实时聊天平台:SSE 解码竞态、有状态会话隔离与背压取消的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
云创智城-yuncitys12 小时前
YunParking 4.0:JDK 17 与 Spring Boot 3.2 的停车云升级
java·开发语言·spring boot
文丑颜不良啊12 小时前
LeetCode1661~1680题目解析
java·leetcode
子非鱼@Itfuture12 小时前
关于前后端联调中登录状态/登录信息失效?
java·前端
郭小李12 小时前
openFeign入门
java·开发语言·前端