这是我参与「第五届青训营 」伴学笔记创作活动的第 15 天
消息队列简介
问题: 系统崩溃 && 服务能力有限 && 链路耗时长尾 && 日志存储
- 解耦
- 削峰
- 异步
- 日志处理
消息队列(MQ)--- 保存消息的一个容器,本质是队列,但支持高吞吐、高并发、高可用
生产 ---> Message Message Message Message ---> 消费
Kafka
创建集群 -> 新增Topic -> 编写生产者逻辑 -> 编写消费者逻辑
Topic内部
Kafka架构
运维成本高
对于负载不均衡的场景,解决方法负载
没有自己的缓存
Controller、Coordinator 和 Broker在同一个进程中,大量的IO操作会造成性能下降
BMQ
兼容Kafka协议,存算分离,云原生消息队列
BMQ架构
小结
BMQ架构模型 -> 解决Kafka存在的问题
BMQ读写流程 -> Failover机制,写入状态机
BMQ高级特性 -> 泳道,Databus, Mirror,Index,Parquet
RocketMQ
使用场景
基本概念和对比
RocketMQ架构
高级特性
事务场景
事务消息
延迟发送
延迟消息
处理失败
消费重试和死信队列