这是我参与「第五届青训营 」笔记创作活动的第13天
消息队列原理与实战
一、本堂课重点内容:
本堂课的知识要点有哪些?
- 消息队列的前世今生
- 消息队列-Kafka
- 消息队列-BMQ
- 消息队列-RocketMQ
- 最佳实践
二、详细知识点介绍:
本堂课介绍了哪些知识点?
- 消息队列的前世今生
- 消息队列应用场景
- 消息队列的发展历史
- 消息队列-Kafka
- kafka使用场景,业务日志、用户行为数据、Metrics数据
- 基本概念,Producer、Cluster、Consumer、Topic、Partition
- Producer:批量发送,数据压缩
- Broker:顺序写,消息索引,零拷贝
- Consumer:Rebalance
- 数据迁移、Offset、Partition选主
- 缺点:重启对时间的花费巨大,负载不均衡情况下处理方法复杂、没有自己的缓存,完全依赖Page Cache
- 替换、缩容、扩容
- 一条消息从生产到消费是如何处理的,Producer端逻辑、Broker端逻辑、Consumer端逻辑
- 消息队列-BMQ
- Kafka在使用中遇到问题
- 兼容Kafka协议,存算分离,云原生消息队列
- 每个DataNode随机选择,打散到整个集群中
- BMQ架构
- Coordinator和Conditioner分离
- BMQ各模块是如何工作的,Broker、Proxy、HDFS、MetaStorage
- Broker
- 写文件
- 读取流程:req->Wait->Cache->Storage
- Broker
- BMQ高级特效
- 泳道功能: 开发->BOE->PPE->Prod
- Databus
- BMQ多机房容灾
- 消息队列-RocketMQ
- RocketMQ使用场景
- 针对电商业务线、和峰值高的业务线
- RocketMQ和Kafka对比
- RocketMQ架构介绍,Producer、Broker、Nameserver、Consumer
- 一条消息从生产到消费是如何处理的,Producer端逻辑、Broker端逻辑、Consumer端逻辑
- 高级特性
- 事务消息
- 重试和死信队列
- 延迟队列
- 最佳实践
三、实践练习例子:
有什么实践举例帮助理解知识点?
- 手动搭建一个kafka集群
- 完成hello world的发送和接收
- 关闭其中一个Broker,观察发送与接收的情况,并写出,在编比一个Broker后,kafaka集群会做哪些事情