Apache Pulsar——簿记员架构
企业级实时存储平台的特点:
BookKeeper的设计完全满足上述需求,并广泛应用于许多用例:分布式系统提供高可用性或多个副本,单个集群或多个集群(多个数据中心)之间的跨机复制,发布/订阅(pub-sub)消息传递系统的存储服务,流式工作的不可变对象。
记账员集群主要包括三个部分:
BookKeeper复制并持久存储日志流,这些日志流是组织良好的记录流。
簿记只有两个核心要素:分类账/流和分录。
簿记员为日志存储提供了两个术语:一个是分类账(也称为日志段);另一种是流(也称为日志流)。
分类帐元数据
Entry是BookKeeper的数据实体,它不仅包含写入bookie的实际数据,还包含一些元数据信息。
Pulsar通过操作总账来读写数据。
整体/写入仲裁/确认仲裁
Pulsar打开一个账本,需要指定三个持久化的配置参数。
一个流由多个分类账组成;每个分类帐根据基于时间或空间的滚动策略进行循环。在流被删除之前,它可能存在相对较长的时间(几天、几个月甚至几年)。Stream的主要数据保留机制是截断,包括根据基于时间或空间的保留策略删除最旧的分类帐。
分类帐和流为历史数据和实时数据提供了统一的存储抽象。写入数据时,实时数据记录通过日志流进行流式传输或后端传输。存储在分类帐中的实时数据成为历史数据。流中累积的数据不受单台机器容量的限制。
在与庄家交互时,簿记员应用主要有两个功能:一是创建账本或流,用于写数据;另一种是打开总账或流读取数据。为了在BookKeeper中与两种不同的存储原语进行交互,BookKeeper提供了两个API。
选择使用哪个API取决于用户对分类帐语义设置的粒度控制程度。用户也可以在一个应用程序中使用这两种API。
下图是簿记员的典型安装示例。
上图的几个注意点。
记账员的元数据存储——元数据存储目前是由zookeeper进行的,用来存储领导ID对应的元数据信息。
集群中的博彩公司用于存储这些分类帐对应的条目,所有博彩公司都将在BookKeeper上登记,客户端将找到并采取相应的行动。BookKeeper的客户端主要实现一些一致性和策略相关的逻辑。
关于Apache BookKeeper项目的更多信息,请访问官网:/p/459213737。
/Zhai Jia 03/文章/详情/107253634/