Pulsar的合格的存储系统 一种面向Apache Apache BookKeeper

  • 电脑网络维修
  • 2024-11-15

​译者 |布加迪

审校 |孙淑娟

假设您相熟Kafka和RocketMQ等信息系统,或者知道服务通常与其架构中的存储亲密关系。与它们不同的是,Apache Pulsar在设计时驳回了将存储与计算分开的两层架构,这实践上在其有形态代理上启动。Pulsar依赖Apache BookKeeper主机(又叫bookies)启动耐久存储。本文并重引见BookKeeper基础常识,标明它如何为所处置的数据成功高可用性。

图1

Apache BookKeeper简介

BookKeeper最后在雅虎开发,代表了一种牢靠的高性能存储系统。它提供散布式可裁减的存储服务,具有低提前和强容错性的好处。这些充沛说明了为什么它能够充任Pulsar的存储层。BookKeeper将数据存储在分类帐(ledger)中,分类帐只能追加且无法变。借助不凡的复制协定,BookKeeper以并发模式在多个节点上安保地存储日志条目,因此具有高可用性。

望文生义,BookKeeper和分类帐在云原生环境中大有用途。无妨想象一下簿记员经常使用分类帐记载所无关系账户信息,以跟踪企业的财务状况。

Apache BookKeeper中的关键概念

为了更好地了解BookKeeper如何存储数据,无妨先看一下几个基本概念。

Bookie是BookKeeper中的存储主机或节点,彼此等同。BookKeeper弱小的灵活裁减性能(尤其是在容器化环境中)归功于无主节点(leaderless)设计。

用于存储分类帐条目的可用bookie的汇合,即写入条目的节点。当一个bookie失效时,处置写入它的客户端将换成一个新的bookie,这名为“ensemble change”。在Pulsar的计算存储分别架构中,客户端运行程序不须要关心存储层中实践出现的事件。

分类帐是BookKeeper中的基本存储单元,在Pulsar中又叫Segment。BookKeeper客户端担任创立和删除分类帐,并从分类帐中读取条目。满足某些条件时(比如条目数或寿命到达预设阈值),分类帐将被封锁,之后再无法向其写入数据,只准许读取。任何客户端都可以创立分类帐。现实状况下,创立分类帐的一切者客户端应该是封锁它的客户端。一旦封锁,分类帐无法变。分类帐是最小的删除单位,这象征着您只能删除整个分类帐,而不能删除分类帐中的单个条目。

除了用于存储普通讯息的分类帐外,BookKeeper还有一种不凡的分类帐,即游标分类帐。游标为Pulsar中的信息消费和确认提供跟踪机制。每个订阅都有一个与之关联的游标,游标存储信息消费和确认的位置信息。消费者或者依据订阅类型来共享雷同的游标。咱们在这里不详细引见这个话题。咱们只要知道Pulsar在BookKeeper中为每个订阅保养一个分类帐。在消费者处置信息(向代理发送确认)、代理收到确认之后,代理随后相应地降级游标分类帐。更详细地说,Pulsar活期汇总绑定到同一订阅的一切消费者的一切确认信息作为条目,并将其写入bookie。这个环节与编写普通讯息基本相反。

片段在bookie的分类帐中存储延续序列的条目。分类帐或者含有一个或多个片段。作为BookKeeper中最小的散布单元,单个分类帐的片段可以扩散在不同的bookie中。这象征着严厉来讲,存储在单个bookie的数据是分类帐的片段。关于单个片段而言,假设写入bookie失败,会选用新的bookie启动写入(即下面提到的“ensemble change”)。结果,将在bookie上创立新片段。请留意,这两个片段属于同一个分类帐,但属于不同的ensemble。

条目含有写入分类帐的实践数据。每个分类帐或者含有不同数量的条目。每个条目都有条目ID作为其在分类帐中的惟一标识符。

信息是存储在条目中的特定信息。信息可以分为两种:单条信息和批量信息。

批量信息实质上是一系列单条信息。在客户端启用信息批处置后,信息将在从消费者发送到代理之前作为一个全体启动分组。Brokers而后调用BookKeeper客户端,将批量信息写入bookie。当消费者从代理读取信息时,代理将批量信息散发给它们。请留意,批量信息在客户端兼并和拆分。您可以经常使用batchingMaxPublishDelay(批量处置待发送信息的期间段)和batchingMaxMessages(批量信息中的最大信息数)等参数,为消费者定制批量信息性能。

留意:每个条目或者蕴含一条或多条信息。假设禁用信息批量处置,一个条目仅存储一条信息。

图2

视用例而定,您可以选用启用或禁用信息批量处置。与大少数散布式信息系统不同,Pulsar支持信息队列和传达输。在信息队列场景中,高吞吐量通常不是必定的,因此很少在客户端启用信息批量处置。相比之下,在传达输情景下,信息的生成速度要快得多,这须要批量处置,以便消费者可以将信息作为更大的包来发送。

数据高可用性

为了保障数据的高可用性,BookKeeper驳回了一种仲裁机制向bookie并行写入数据。详细来说,咱们可认为要创立的新分类帐定义以下三个关键整数:

这三个参数可以区分在代理、命名空间和主题级别启动性能。比如在代理级别,编辑Pulsar包的conf目录中的broker.conf文件,并设置所需的值:

属性文件

# Number of bookies to use when creating a ledger

managedLedgerDefaultEnsembleSize=2

# Number of copies to store for each message

managedLedgerDefaultWriteQuorum=2

# Number of guaranteed copies (acks to wait before a write is complete)

managedLedgerDefaultAckQuorum=2

留意:咱们可以依据对分歧性的需求来性能以上参数。比如说,WQ=AQ示意最初级别的分歧性。在这种状况下,信息只要在收到一切正本确实认后才干成功耐久化。当AQ比拟小(比如AQ = 1)时,提前会较低,然而数据失落危险较大。普通来说,最好设置AQ ≥ (WQ + 1)/2。

比如在下图中,咱们设置E = 5、WQ = 3和AQ = 2。这象征着:

图3

数据经常使用循环散布写入bookie。这么设计是由于,它可以充沛应用池中一切bookie的处置才干。如下所示,Entry 1写入Bookie 1、Bookie 2和Bookie 3,Entry 2写入Bookie 2、Bookie 3和Bookie 4,以此类推。

图4

循环方法提供了一种便捷的方法来极速找出经过条目ID来存储特定条目正本的bookie。比如说,咱们知道条目2在Bookie 2、Bookie 3和Bookie 4上复制。2 mod 5等于 2,这象征着关于特定的条目X而言,假设X mod 5等于2,条目X就存储在Bookie 2上、Bookie 3和Bookie 4上,比如条目 7 (X=7)。

经常使用Apache BookKeeper

当您装置Pulsar集群时,BookKeeper将一起部署。假设您想运转BookKeeper,不须要独自下载其代码。相反,下载Pulsar并在bin目录中运转./pulsar-daemon start bookie命令。假设您经常使用Pulsar社区提供的Helm chart将其装置在Kubernetes集群上,bookie Pods则部署在StatefulSet 中。

结语

本文引见了BookKeeper的基础常识,剖析了如何将数据写入bookie以成功高可用性。咱们可以将BookKeeper便捷地视为一个数据库,由于它不蕴含任何业务逻辑。该开源工具具有杰出的可裁减性、弱小的容错性和低提前,具有成为合格的云原生活储系统所需的个性,为Pulsar的共同架构提供了松软的支持。

原文题目: ​ ​ Apache BookKeeper: What Makes A Qualified Storage System for Apache Pulsar ​ ​ ,作者:Sherlock Xu

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/8062.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号