翟佳:高可用、强一致、低延迟——BookKeeper的存储实现

本文介绍了Apache BookKeeper,一种分布式日志服务,它支持Pulsar等系统的底层存储,提供了高可用性、强一致性、低延迟的特性。BookKeeper通过多副本并发和IO读写分离设计确保服务稳定性,并已在Twitter、Salesforce等大型公司得到应用。
摘要由CSDN通过智能技术生成

分享嘉宾:翟佳 StreamNative 联合创始人

编辑整理:张晓伟 美团点评

出品平台:DataFunTalk


导读:多数读者们了解BookKeeper是通过Pulsar,实际上BookKeeper在数据库和存储场景都有着非常广泛的应用。BookKeeper是Pulsar的底层存储,Pulsar有着广泛数据入口,Pulsar跟Kafka及各类MQ(RabbitMQ、ACTIVEMQ)的较大区别是Pulsar是统一的云原生消息流平台,不但是分布式系统,而且做了存算分离,可以让用户在云的环境下,体验到云原生的优势,例如随意扩缩容、数据灵活迁移复制等。希望通过本文,让大家对Pulsar底层的BookKeeper有更深入的了解。

今天的介绍会围绕下面四点展开:

  • BookKeeper的简介
  • BookKeeper的特性
  • BookKeeper存储介质的演进
  • BookKeeper的社区资源

--

01 BookKeeper的简介

1. 业务场景需求的统一

Pulsar里有很重要的概念是“统一”,这个统一的特性是由BookKeeper支持实现的。这里的统一是指需求的统一,在消息场景下,用户场景分两类:

第一类是线上业务场景,例如1984年诞生的IBM MQ到现在的各类开源MQ解决的是线上业务场景,这些MQ的服务质量会对业务服务质量有着直接的影响,所以这类需求对数据质量,例如对数据持久性、数据延迟、消费模型的灵活性有较强的要求。

第二类是大数据场景,例如2010年左右随着实时计算的广泛使用,Kafka的这种高带宽和高吞吐使用需求。

file

由于面向场景不同、技术栈不同,这两种场景在业务上又同时存在,给业务带来不同的基础设施API、不同的使用方式、不同系统的运维成本等问题。所以Pulsar针对这些问题,做了两层API的统一:既兼容MQ的并发消费模型,提供比较好的服务质量,同时通过底层存储层抽象,可以提供很高的吞吐和带宽,这就是我们要介绍的Apache BookKeeper项目。

file

2. Apache BookKeeper简介

很多服务里都有日志,例如MySQL的binlog和HDFS的namenode的editlog,都是对日志的一个抽象,而BookKeeper就是把这个抽象变成了一个分布式的服务,摆脱了对单机容量瓶颈的限制,把日志变成了可无限扩展的服务。BookKeeper使用packet source协议和ZooKeeper的zap协议,通过log append only的方式实现了低延迟和高吞吐。在APCP里选择CP,而availability是通过多副本并发的方式提供高可用,BookKeeper有着低延迟、高吞吐、持久化、数据的强一致性、服务的高可用、单节点可以存储很多日志、IO隔离等优势,针对这些特性在后文会展开介绍。

3. BookKeeper的诞生

BookKeeper也是Apache的一个项目,同样是由雅虎捐献诞生,原本是为了应对雅虎开源HDFS里元数据存储

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值