消息队列原理与实战 | 青训营笔记

42 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第13天

消息队列原理与实战

一、本堂课重点内容:

本堂课的知识要点有哪些?

  1. 消息队列的前世今生
  2. 消息队列-Kafka
  3. 消息队列-BMQ
  4. 消息队列-RocketMQ
  5. 最佳实践

二、详细知识点介绍:

本堂课介绍了哪些知识点?

  1. 消息队列的前世今生
  • 消息队列应用场景
  • 消息队列的发展历史
  1. 消息队列-Kafka
  • kafka使用场景,业务日志、用户行为数据、Metrics数据
  • 基本概念,Producer、Cluster、Consumer、Topic、Partition
    • Producer:批量发送,数据压缩
    • Broker:顺序写,消息索引,零拷贝
    • Consumer:Rebalance
  • 数据迁移、Offset、Partition选主
  • 缺点:重启对时间的花费巨大,负载不均衡情况下处理方法复杂、没有自己的缓存,完全依赖Page Cache
  • 替换、缩容、扩容
  • 一条消息从生产到消费是如何处理的,Producer端逻辑、Broker端逻辑、Consumer端逻辑
  1. 消息队列-BMQ
  • Kafka在使用中遇到问题
    • 兼容Kafka协议,存算分离,云原生消息队列
    • 每个DataNode随机选择,打散到整个集群中
  • BMQ架构
    • Coordinator和Conditioner分离
  • BMQ各模块是如何工作的,Broker、Proxy、HDFS、MetaStorage
    • Broker
      • 写文件
      • 读取流程:req->Wait->Cache->Storage
  • BMQ高级特效
    • 泳道功能: 开发->BOE->PPE->Prod
    • Databus
  • BMQ多机房容灾
  1. 消息队列-RocketMQ
  • RocketMQ使用场景
    • 针对电商业务线、和峰值高的业务线
  • RocketMQ和Kafka对比
  • RocketMQ架构介绍,Producer、Broker、Nameserver、Consumer
  • 一条消息从生产到消费是如何处理的,Producer端逻辑、Broker端逻辑、Consumer端逻辑
  • 高级特性
    • 事务消息
    • 重试和死信队列
    • 延迟队列
  1. 最佳实践

三、实践练习例子:

有什么实践举例帮助理解知识点?

  1. 手动搭建一个kafka集群
  2. 完成hello world的发送和接收
  3. 关闭其中一个Broker,观察发送与接收的情况,并写出,在编比一个Broker后,kafaka集群会做哪些事情

四、课后个人总结:

本章有什么知识点不容易掌握?

什么地方容易与其他内容混淆?

五、引用参考:

我参考了哪些外部博客/笔记/文章?

文章中有什么地方是我参考引用了外部博客/笔记/文章的?

六、例文: