Pulsar 笔记

栏目: 后端 · 发布时间: 5年前

内容简介:written by Alex Stocks on 2018/10/16,版权所有,无授权不得转载刚开始看 Apache Pulsar 一些资料,后面逐步补充。很多人查看 Pulsar 之前可能对 Kafka 很熟悉,下面详述二者的异同以明确 Pulsar 的特点。

written by Alex Stocks on 2018/10/16,版权所有,无授权不得转载

刚开始看 Apache Pulsar 一些资料,后面逐步补充。

1 Pulsar vs Kafka

很多人查看 Pulsar 之前可能对 Kafka 很熟悉,下面详述二者的异同以明确 Pulsar 的特点。

1.1 Kafka 的缺陷

参考文档1 给出了 Kafka 的一些不足:

  • 1 Kafka 每个 Partition replica 都完整的存储在kafka节点上,Partition 以及 Partition replica 由一系列的 Segment 和索引文件组成,整个架构简单快捷,但是单个节点必须有足够的磁盘空间来处理副本;
  • 2 在集群扩展时必须做 Rebalance,需要 Broker 有良好的执行流程保证没有任何故障的情况下分散节点的存储压力。

比较才有优劣。相比 Pulsar,Kafka 的存储模型的缺陷导致了其负载均衡能力的不足, 参考文档3 对这点很形象地以下图说明之。

Pulsar 笔记

Pulsar 的底层数据 以 Fragments 形式存储在多个 BookKeeper 上,当集群扩容添加 Bookies 后,Pulsar 会在新的Bookie上创建新的 Fragment,所以不需要再扩容时候像 Kafka 一样进行 Rebalance 操作。但是这样的结果就是同一个 Ledger 的 Fragments 分布在多个 Bookie 上,导致读取和写入会在多个 Bookies 之间跳跃。Topic的 Ledger 和 Fragment 之间映射关系等元数据存储在Zookeeper中,Pulsar Broker 需要实时跟踪这些关系进行。

Pulsar 的 metadata 存储在 zookeeper 上,而消息数据存储在 Bookkeeper 上。Broker 虽然需要这些 metadata,但是其自身并不持久化存储这些数据,所以可以认为是无状态的。

1.2 名词对应表

根据个人对 参考文档1 的理解,整理如下 Pulsar 和 Kafka名词对应列表

Pulsar Kafka
Topic Topic
Partition Ledger
Segment Fragment/Segment
Broker Bookie
Ensemble Size Broker Number
Write Quorum Size (Qw) Replica Number
Ack Quorum Size (Qa) request.required.acks

writing.

2 Pulsar 读写过程

2.1 fencing

fencing 本质就是一个分布式加锁协议,与 2PC 协议类似,本质上与多 CPU core 之间数据一致性协议 MESI 协议无差。

Pulsar 笔记

writing.

参考文档

1 理解Apache Pulsar工作原理

2 Twitter高性能分布式日志系统架构解析

3 Kafka vs Pulsar - Rebalancing (Sketch)

扒粪者-于雨氏

2018/10/18,于雨氏,于西二旗。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Twisted Network Programming Essentials

Twisted Network Programming Essentials

Abe Fettig / O'Reilly Media, Inc. / 2005-10-20 / USD 29.95

Developing With Python's Event-driven Framework一起来看看 《Twisted Network Programming Essentials》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具