消息队列(二)|青训营笔记

123 阅读2分钟

Kafka

kafka是一种分布式的,基于发布/订阅的消息系统

使用场景

搜索服务、直播服务、订单服务、支付服务、日志信息、搜索、点赞、评论、收藏等

使用步骤

  1. 创建集群
  2. 新增Topic
  3. 编写生产者逻辑
  4. 编写消费者逻辑

基本概念

Topic

逻辑队列,不同Topic可以建立不同的Topic

Cluster

物理集群,每个集群中可以建立多个不同的Topic

Producer

生产者,负责将业务消息发送到Topic中

Consumer

消费者,负责消费Topic中的消息

ConsumerGroup

消费者组,不同组Consumer消费进度互不干涉

Offset

消息在Partition内的相对位置信息,可以理解为唯一ID,在partition内部严格递增

Replica

每个分片又多个Replica,Leader Replica将会从ISR中选出

架构

image-20230521140642233.png

ZooKeeper:负责存储集群元信息,包括分区分配信息等

Producer

批量发送: 批量发送可以减少IO次数,从而加强发送能力

数据压缩: 通过压缩,减少信息大小,目前支持Snappy,Gzip,LZ4,ZSTD压缩算法

BMQ

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

运维操作对比

具体操作KafkaBMQ
重启需要数据复制,分钟级重启,甚至天级别重启后可直接对外服务,秒级完成
替换需要数据复制,分钟级替换,甚至天级别替换后可直接对外服务,秒级完成
扩容需要数据复制,分钟级扩容,甚至天级别扩容后可直接对外服务,秒级完成
缩容需要数据复制,分钟级缩容,甚至天级别缩容后可直接对外服务,秒级完成

高级特性

image-20230521141520599.png

泳道消息

开发流程: 开发-->BOE-->PPE-->Prod

BOE:是一套完全独立的线下机房环境

PPE:产品预览环境