后端入门-中间件| 青训营笔记

112 阅读1分钟

消息队列前世今生-Kafka、BMQ

业界消息队列:Kafka、PocketMQ、Pulsar、BMQ

  • Kafka
  1. 使用场景:离线服务中使用
  2. 如何使用:创建集群、新增Topic、编写生产者逻辑、编写消费者逻辑
  3. 基本概念:Topic-业务场景;Offset,可理解为partition的唯一ID,严格递增;Replica,每个partition有多个Replice,会在一定程度上保持和partition中的leader一致
  4. Producer:批量发送:防止因单条消息阻塞、数据压缩:减少消息大小
  5. Broker:顺序写提高磁盘写入效率,减少寻道时间;消息索引;零拷贝
  6. Consumer:通过寻找协调者减少消耗Rebalance

4,5,6可以帮助Kafka提高吞吐或稳定性

Kafka缺点:运维成本高、负载不均衡场景解决方案复杂、没有自己的缓存,完全依赖PageCache、Controller和Coordinator和Broker在同一进程中,大量IO会造成性能下降

  • BMQ:兼容Kafka、存算分离、云原生消息队列

image.png

image.png

  1. Partition状态机:保证对于任意分片在同一时刻只在一个Broker上存活 image.png 2.写文件流程

image.png

多机房部署: 每个机房都处理全部的partition