博文干货|5张图带你快速入门 Pulsar 的存储引擎 BookKeeper
2024.02.15 23:38浏览量:2简介:Pulsar是一个开源的分布式消息系统,提供低延迟、高吞吐量、持久化的消息队列服务。其存储引擎BookKeeper是一个高可用、高可靠、高性能的分布式存储系统,用于存储消息数据和元数据。本文将通过5张图,带您快速入门Pulsar的存储引擎BookKeeper。
千帆应用开发平台“智能体Pro”全新上线 限时免费体验
面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用
一、Pulsar架构与BookKeeper位置
- Pulsar架构
Pulsar是一个开源的分布式消息系统,提供低延迟、高吞吐量、持久化的消息队列服务。它由多个组件组成,包括Broker、BookKeeper和ZooKeeper等。
- BookKeeper位置
BookKeeper作为Pulsar的存储引擎,负责存储消息数据和元数据。它与Broker、ZooKeeper等组件协同工作,共同完成Pulsar的消息存储和管理功能。
二、BookKeeper核心组件
- Bookie
Bookie是BookKeeper中的存储节点,负责存储数据块,提供数据读取和写入服务。每个Bookie运行一个BookKeeper服务器实例。
- Ledger
Ledger是BookKeeper中的基本存储单元,用于存储消息数据。一个Ledger由多个Entry组成,每个Entry包含一个消息和时间戳。Ledger具有持久化、有序和不可变的特点。
- Journal
Journal是Bookie中用于记录元数据的日志文件。它记录了Ledger的元数据和Bookie的操作日志,用于保障数据的可靠性和一致性。
- Index
Index是Bookie中用于记录Ledger物理位置的文件。它记录了每个Entry在磁盘上的位置信息,以便于高效地读取和写入数据。
三、BookKeeper工作原理
- 写入流程
当客户端向Pulsar发送写请求时,请求会经过Broker处理,并转发给BookKeeper进行存储。BookKeeper会将消息写入到多个Bookie中,确保数据的可靠性和冗余性。具体流程如下:
a. 客户端向Broker发送写请求,指定要写入的Ledger和Entry。
b. Broker根据负载均衡策略选择一个或多个Bookie节点。
c. Broker将写请求转发给选定的Bookie节点。
d. Bookie节点将消息写入到本地磁盘上的Ledger中,并记录操作日志到Journal中。
e. Bookie节点将消息索引信息写入到Index文件中。
f. 写请求完成,Bookie节点返回成功响应给Broker和客户端。
- 读取流程
当客户端向Pulsar发送读请求时,请求会经过Broker处理,并转发给BookKeeper进行读取。BookKeeper会从多个Bookie中读取数据,并根据Entry的物理位置信息高效地读取数据。具体流程如下:
a. 客户端向Broker发送读请求,指定要读取的Ledger和Entry。
b. Broker根据负载均衡策略选择一个或多个Bookie节点。

发表评论
登录后可评论,请前往 登录 或 注册