从Kafka到Pulsar|青训营笔记

92 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第12天,在第十二节课中主要了解到了Kafka,Pulsar有关的内容。

一、消息队列概述

消息队列的应用场景

  • MQ消息通道
  • EventBridge事件总线
  • Data Platform流数据平台

主流消息队列的相关介绍

image.png

二、Kafka详解

Kafka架构介绍

image.png

Zookeeper

Kafka存储数据:

  • Broker Meta信息
  • Controller信息
  • Topic信息
  • Config信息 选举机制:Paxos机制
  • 提供一致性:写入、读取
  • 提供可用性:一半以上节点存活即可读写
  • 提供功能:watch机制、持久/临时节点能力

Broker

Broker角色:

  • 若干Broker节点组成Kaflka集群
  • Broker作为消息的接收模块,使用 Controller选举:
  • Broker启动会尝试去zk中注册controller节点
  • 注册上controller节点的broker即为controller
  • 其余broker会watch controller节点,节点出现异常则进行重新注册 Controller作用:
  • Broker重启时,负责副本的Failover切换
  • Topic创建/删除时,负责Topic meta信息广播
  • 集群扩缩容时,进行状态控制
  • Partition/Replica状态机维护

Kafka高可用

Kafka副本ISR机制

AR:

  • Assign Replica OSR:
  • Out Sync Replica ISR:
  • 一直都在同步数据的副本
  • 可以作为热备进行切换的副本

Kafka写入Ack机制

Ack=1:

  • Leader副本写入成功 Ack=0
  • OneWay模式
  • Producer发送后即为成功 Ack=-1
  • ISR中所有副本都成功,Producer才认为写成功

Kafka副本同步

LEO

  • Log End Offset,日志最末尾的数据 HW
  • ISR中最小的LEO作为HW
  • HW的消息为Consumer可见的消息

Kafka副本选举

image.png

Kafka集群扩缩容

image.png Kafka集群扩缩容之后的目标 Topic维度:

  • partition在各个broker之间分布是均匀的
  • 同一个partition的repica不会分布在一台broker Broker维度
  • Broker之间replica的数量是均匀的

Kafka依赖KRaft

  • Process.Roles = Broker

三、Pulsar详解

Pulsar架构介绍

image.png

四、周边和生态

周边生态概览

image.png

  • Pulsar IO
  • Kafka Schema
  • Pulsar SQL