这是我参与「第四届青训营」笔记创作活动的第6天,笔记的内容是有关青训营课程中的一个分享.
前言:
这一次的内容是关于Kafka到Pulsar:数据流演进之路的笔记,同时kafka我也在青训营的项目中进行了使用。我将从以下几个方面来进行分享:
- Kafka详解
- Pulsar详解
一、Kafka
1.1 Kakfa架构
1.11 Kafka存储数据:
- Broker Meta信息(信息节点)
- Controller信息(临时节点)
- Topic信息(持久节点)
- Config信息(持久节点)
1.12 Zookeeper的机制:
- 选举机制:Paxos机制
- 提供一致性:写入和读取
- 提供可用性:一半以上节点存活即可读写
- 提供功能:watch机制、持久/临时节点能力
1.2 Kafka高可用
1.21 可用性定义
Kafka高可用:
- 副本同步机制
- 副本切换机制
1.22 Kafka副本ISR机制
- AR(Assign Replica,已经分配的所有副本)
- OSR(很久没有同步数据的副本)
- ISR(一直都在同步数据的副本)
1.23 Kafka写入Ack机制
- Ack=1(Leader副本写入成功,Producer即认为写成功)
- Ack=0(OneWay模式)
- Ack=-1(ISR中所有副本都成功,Producer才认为写成功)
1.24 Kafka副本同步
- 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架构
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提供基于事件的服务,支持有状态与无状态的多语言计算,是对复杂的大数据处理框架的有力补充。
结尾
这一次的课程对我的青训营大数据项目是非常有利的,其中上面的内容包含了Kafka以及分布式,而我们的大数据项目就需要用到这两个,这些内容就是本次上课后我个人认为比较经典的地方。