[走进消息队列 | 青训营笔记 ]

94 阅读1分钟

一、什么是消息队列

消息队列(MQ):是保存消息的一个容器,其本质是个队列。 特点:该队列需要支持高吞吐,高并发,并且高可用。

二、消息队列

(一)Kafka相关基本概念

  1. Topic:逻辑队列,不同Topic可以建立不同的Topic
  2. Cluster:物理集群,每个集群中可以建立多个不同的Topic
  3. Producer:生产者,负责将业务消息发送到Topic中
  4. Consumer:消费者,负责消费Topic中的消息
  5. ConsumerGroup:消费者组,不同组Consumer消费进度互不干涉
  6. Offset :消息在partition内的相对位置信息,可以理解为唯一ID,在partition内部严格递增。
  7. Replica:每个分片有多个Replica,Leader Replica将会从ISR中选出。
  8. ZooKeeper:负责存储集群元信息,包括分区分配信息等

(二)各阶层任务

  1. Producer:批量发送、数据压缩
  2. Broker:顺序写,消息索引,零拷贝
  3. Consumer: Rebalance

(三)Kafka问题总结

  1. 运维成本高
  2. 对于负载不均衡的场景,解决方客复杂5208
  3. 没有自己的缓存,完全依赖Page Cache
  4. Controller 和Coordinator和Broker在同一进程中,大量IO会造成其性能下降

(四)消息队列BMQ

简介:兼容Kafka协议,存算分离,云原生消息队列

  1. BMQ的架构模型(解决Kafka存在的问题)
  2. BMQ读写流程(Failover机制,写入状态机)
  3. BMQ高级特性(泳道、Databus、Mirror、Index、Parquet)

四、小结

本次课程初步认识了消息队列,知道了消息队列的前世今生,几个重要的消息队列,以及消息队列的几个高级特性。