这是我参与「第五届青训营 」伴学笔记创作活动的第 14 天
要点:
- 消息队列的前世今生
- 消息队列-Kafka
- 消息队列-BMQ
- 消息队列-RocketMQ
- 企业最佳实践
课程1-消息队列前世今生
四个场景:
a.系统崩溃:解耦
b.服务处理能力有限:削峰
c.链路耗时长尾:异步
d.日志如何处理:存到消息队列中
课程2-消息队列-Kafka
Producer:批量发送、数据压缩
Broker:顺序写、消息索引、零拷贝
Consumer:Rebalance
缺点:
a.运维成本高
b.对于负载不均衡的场景,解决方案复杂
c.没有自己的缓存,完全依赖page chche
d.Controller和Coordinator和Broker在统一进程,大量IO会造成其性能下降
兼容Kafka协议,存算分离,云原生消息队列
原生SDK问题:
a.客户端配置较为复杂
b.不支持动态配置,更改配置需要停掉服务
c.对于延迟不敏感的业务,batch效果不佳
内容小结:
a.BMQ的模型架构(解决kafka存在的问题)
b.BMQ读写流程(Failover机制,写入状态机)
c.BMQ高级特性(泳道、DataBus、Mirror、Index、Parquet)