从 Kafka 到 Pulsar:数据流演进之路 | 青训营笔记

131 阅读3分钟

这是我参与「第四届青训营 」笔记创作活动的第16天

从 Kafka 到 Pulsar:数据流演进之路

01.消息队列概述

1.1消息队列的应用场景

MQ消息通道

image.png

       优点:上下游解耦、削峰填谷、发布订阅、高可用

EventBridge事件总线

image.png

Data Platform流数据平台

image.png

1.2主流消息队列

image.png

02.Kafka详解

1.架构介绍

image.png

2.高可用

副本同步机制

提供sr副本复制机制,提供热备功能

写入端提供ack=0,-1,1机制,控制副本同步强弱

副本切换机制

提供clean/unclean副本选举机制

Kafka副本ISR机制:AR/ISR/OSR

Kafka写入Ack机制:

Ack = 1

Leader副本写入成功,Producer即认为写成功

Ack = 0

OneWay模式

Producer发送后即为成功

Ack = -1

SR中所有副本都成功,Producer才认为写成功

Kafka副本同步

image.png

Kafka副本选举

Clean选举

优先选取lsr中的副本作为leader

如果lsr中无可用副本,则partition不可用

Unclean选举

优先选取lsr中的副本作为leader

如果lsr中无可用副本,则选择其他存活副本

运维↓

3.集群扩缩容

扩容:

扩容Broker节点

  • Leader副本写入成功,Producer即认为写成功

计算均衡的Replica 分布拓扑

  • 保证Topic的partition在broker间分布均匀

  • 保证Broker之间Replica分布均匀

Controller负责新的副本分布元数据广播

Controller将新的leade / follower信息广播给broker

Broker负责新副本的数据同步

Broker上有需要同步数据的副本则进行数据同步

缩容:

计算均衡的Replica 分布拓扑

  • 保证Topic的Ipartition在broker间分布均匀

  • 保证Broker之间Replica分布均匀

Controller 负责新的副本分布元数据广播

  • Controller 将新的leade // follower信息广播给broker

Broker负责新副本的数据同步

  • Broker上有需要同步数据的副本则进行数据同步

下线缩容的Broker节点

  • 数据同步完毕之后下线缩容的Broker节点

4.未来演进之路

image.png

5.运维/调优经验介绍

image.png

03.Pulsar详解

1.架构介绍

image.png

2.Bookkeeper介绍

image.png

Ledger :k的一个基本存储单元,BK Client的读写操作都是以Ledger为粒度的

Fragment :Bk的最小分布单元(实际上也是物理上的最小 存储单元),也是Ledger 的组成单位,默认情况下一个 Ledger会对应的一个Fragment (一个Ledger也可能由多个Fragment 组成

Entry :每条日志都是一个Entry,它代表一个record ,每条record都会有一个对应的entry id

3.Pulsar功能介绍

image.png

生产模式:

image.png

消费模式:Exclusive 、Failover 、Shared 、Key_Shared

多租户:体现在Url中

Plugin:

image.png GEO Relication:

image.png

4.集群HA&Scale-up

image.png

image.png

5.Pulsar vs Kafka

存储架构

  • 存储计算分离之后带来的优劣势

  • 多层架构,状态分离之后的优势

运维操作

  • 应对突发流量变化,集群扩缩容是否便捷

  • 运维任务是否影响可用性

  • 集群部署是否灵活

功能特性

  • 多语言&多协议

  • 多租户管理

  • 生产消费模式

生态集成