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

57 阅读2分钟

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

一、本章重点知识

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

二、详细知识

消息队列

  • 解耦
  • 削峰
  • 异步
  • 日志处理

消息队列的前世今生

消息队列-Kafka

kafka使用场景:业务日志、用户行为数据、Metrics数据

如何使用:创建集群->新增Topic->编写生产者逻辑->编写消费者逻辑

基本概念,Producer、Cluster、Consumer、Topic、Partition

数据迁移、Offset、Partition选主

  • offset:消息在partition内的相对位置信息,可以理解为唯一ID,在partition内部严格递增
  • Replica:每个分片有多个Replica,Leader Replica将会从ISR中选出
  • Producer:数据压缩,通过压缩,减少信息大小,目前支持Snappy、Gzip、LZ4、ZSTD压缩算法
  • Broker:磁盘结构,移动磁头找到对应磁道,磁盘转动,找到对应扇区,最后写入,寻道成本比较高,因此顺序可以减少寻道所带来的时间成本
  • Consumer:消息的接受端

一条消息从生产到消费是如何处理的,Producer端逻辑、Broker端逻辑、Consumer端逻辑

消息队列-RocketMQ

低延迟、强一致、高性能、高可靠、万亿级容量和灵活的可扩展性,在一些实时场景中运用较广

消息队列-BMQ

  • Kafka在使用中遇到问题
  • BMQ架构
  • BMQ各模块是如何工作的,Broker、Proxy、HDFS、MetaStorage
  • BMQ多机房容灾

消息队列-RocketMQ

RocketMQ使用场景:例如,针对电商业务线,其业务涉及广泛,如注册、订单、库存、物流等;同时也会涉及许多业务峰值时刻,如秒杀活动、周年庆、定期特惠等

RocketMQ和Kafka对比

QQ图片20230209230139.png

RocketMQ架构介绍,Producer、Broker、Nameserver、Consumer

一条消息从生产到消费是如何处理的,Producer端逻辑、Broker端逻辑、Consumer端逻辑

消息队列在字节

一些最佳实践的场景,包括数据展示