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

129 阅读2分钟

image.png

这是我参与「第四届青训营」笔记创作活动的第6天,笔记的内容是有关青训营课程中的一个分享.

前言:

这一次的内容是关于Kafka到Pulsar:数据流演进之路的笔记,同时kafka我也在青训营的项目中进行了使用。我将从以下几个方面来进行分享:

  • Kafka详解
  • Pulsar详解

一、Kafka

1.1 Kakfa架构

1803758c-2ade-4095-ba3b-3319724fe82c.png
1.11 Kafka存储数据:
  • Broker Meta信息(信息节点)
  • Controller信息(临时节点)
  • Topic信息(持久节点)
  • Config信息(持久节点)
1.12 Zookeeper的机制:

image.png

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

1.2 Kafka高可用

1.21 可用性定义

Kafka高可用:

  • 副本同步机制
  • 副本切换机制 image.png
1.22 Kafka副本ISR机制
  • AR(Assign Replica,已经分配的所有副本)
  • OSR(很久没有同步数据的副本)
  • ISR(一直都在同步数据的副本)

image.png

1.23 Kafka写入Ack机制
  • Ack=1(Leader副本写入成功,Producer即认为写成功)
  • Ack=0(OneWay模式)
  • Ack=-1(ISR中所有副本都成功,Producer才认为写成功)
1.24 Kafka副本同步

image.png

  • LEO(Log End Offset,日志最末尾的数据)
  • HW(ISR中最小的LEO作为HW)
1.25 Kakfa集群扩容步骤
  • 扩容Broker节点
    • Leader副本写入成功,Producer即认为写成功
  • 计算均衡的Replica分布拓扑
    • 保证Topic的partition在broker间分布均匀
    • 保证Broker之间Replica分布均匀
  • Controller负责新的副本分布元数据广播
    • Controller将心的Leader/follower信息广播给Broker
  • Broker 负责新副本的数据同步

二、Pulsar

2.1 Pulsar架构

image.png

2.2 Pulsar Proxy

Pulsar Proxy的作用以及应用场景

  • 部分场景无法知道Broker地址,如云环境或者Kubernetes环境
  • Proxy提供类似GateWay代理能力,解耦客户端和Broker,保障Broker安全
2.2 Pulsar Storage

Pulsar数据在不同存储中的抽象

  • 分布式Joumal系统(Bookkeeper)中为Joumal
  • 分布式文件系统中为文件
  • 普通磁盘中为文件
  • 分布式Blob存储中为Blob
  • 分布式对象存储中为对象
2.3
  • Pulsar Functions是一个轻量级计算框架,提供一个部署简单、运维简单、API简单的FAAS平台。
  • Pulsar Functions提供基于事件的服务,支持有状态与无状态的多语言计算,是对复杂的大数据处理框架的有力补充。

image.png

结尾

这一次的课程对我的青训营大数据项目是非常有利的,其中上面的内容包含了Kafka以及分布式,而我们的大数据项目就需要用到这两个,这些内容就是本次上课后我个人认为比较经典的地方。