写点什么

Apache Pulsar 对现代数据堆栈至关重要的四个原因

  • 2021-02-09
  • 本文字数:2040 字

    阅读完需:约 7 分钟

Apache Pulsar对现代数据堆栈至关重要的四个原因

本文最初发布于 DataStax 官方博客,经原作者授权由 InfoQ 中文站翻译并分享。


多年来,DataStax 一直专注于消息传递。一个非常重要的原因是基于微服务的架构日益普及。简单来说,微服务架构使用消息总线来解耦服务之间的通信,并简化重放、错误处理和负载峰值。



有了 Cassandra 和 Astra,开发者和架构师就有了这样一个数据库生态系统:

  1. 以开源为基础

  2. 非常适合混合云和多云部署

  3. 云原生,按消费计价


目前还没有满足这些需求的消息传递解决方案,因此,我们正在构建一个。


我们从评估最流行的 Apache Kafka 开始。我们发现它在四个方面存在不足:

  1. 跨地域复制

  2. 扩展

  3. 多租户

  4. 队列


我们解决了所有这些问题。让我们逐项看下。


跨地域复制

Cassandra 支持数据中心内或跨数据中心的同步和异步复制。(通常,Cassandra 被配置为区域内的同步复制,以及跨区域的异步复制。)这使得像Netflix这样的Cassandra用户可以为各地的客户提供低延迟的服务,遵守数据主权规定,并且可以经受住基础设施故障。( 当 AWS 需要重启 218 个 Cassandra 节点修补一个安全漏洞时,“Netflix经历了0宕机”。)


Kafka 被设计为在单个区域内运行,不支持跨数据中心的复制。Kafka 部署区域之外的客户端只能忍受延迟增加。有几个项目试图在客户端层面向 Kafka 添加跨数据中心的复制,但操作都很困难,而且容易失败。


和 Cassandra 一样,Pulsar 在核心服务器上构建了跨地域复制功能。(也像 Cassandra 一样,你可以在部署时选择同步或异步配置,并且可以按主题配置复制机制。)生产者可以从任何地区写入共享主题,Pulsar 负责确保这些信息对各地的消费者均可见。



关于 Pulsar 的跨地域复制,Splunk 写了两篇很好的文章:第一部分第二部分


扩展

在 Kafka 中,存储单元是一个段文件,但是复制单元是一个分区中的所有段文件。每个分区都归一个 leader 代理所有,它会复制给多个 follower。所以,当你需要给 Kafka 集群增加容量时,在新节点分担现有节点的负载之前,有些分区需要复制到新节点上。



 这意味着,增加 Kafka 集群的容量会使其变慢,而不是变快。如果你的容量规划恰到好处,这很好,但如果业务需求的变化比你预期的要快,那么这可能会是一个严重的问题。


Pulsar 增加了一个间接层。(Pulsar 也将计算和存储分开,分别由 broker 和 bookie 管理,但这里,最重要的部分是 Pulsar 如何通过 Bookkeeper 增加复制的粒度。)在 Pulsar 中,分区被分割成 ledger,但和 Kafka 段不同,ledger 可以单独复制,互不影响。Pulsar 在 Zookeeper 中维护着一个 ledger 到分区的映射。因此,当我们向集群添加一个新的存储节点时,我们所要做的就是在该节点上启动一个新的 ledger。现有的数据可以保留在原来的位置,不需要集群做额外的工作。


要深入了解 Pulsar 的架构和存储模型,请阅读Jack Vanlightly的博文


多租户

多租户基础设施可以跨多个用户和组织共享,同时保证它们彼此隔离。一个租户的活动不应该影响其他租户的安全或 SLA。


从根本上说,多租户可以从两个方面降低成本。首先,简单地共享单个租户没有充分利用的基础设施——将组件的成本分摊到所有用户。第二,通过简化管理——当有几十、几百或几千个租户时,管理一个实例明显简单许多。即使在一个容器化的世界里,“在这样一个共享系统上给我分配一个帐户”也比“为我提供这个服务的一个新实例”容易实现得多。全球性的问题可能由于分散在许多实例中而被掩盖。


与跨地域复制一样,多租户很难移植到没有这项设计的系统上。Kafka 是单租户设计,但 Pulsar 从内核上就支持多租户。



Pulsar 允许我们通过一个接口管理跨多个区域的多个租户,该接口包括身份验证和授权、隔离策略(Pulsar 可以选择在集群中划分出专供单个租户使用的硬件)和存储配额。CapitalOne 在这里对 Pulsar 的多租户做了很好的概述。


DataStax 提供的新 Pulsar 控制台进一步简化了这项工作。


队列(也即流)

Kafka 提供了一个经典的发布/订阅(publish/subscribe)消息模型——发布者发送消息给 Kafka,后者在主题中按分区排序,并给每个订阅者(或”消费者“)发送一份副本。



Kafka 用日志中的偏移量记录消费者已经看到了哪条消息。这意味着消息不能乱序确认,同时也意味着不能跨多个消费者共享订阅。(在其消费者分组设计中,Kafka 允许将多个分区映射到一个消费者,但不能反过来。)


这对于发布/订阅用例(有时称为流)来说很好。对于流,重要的是要以与消息发布时相同的顺序消费消息。


Pulsar 支持发布/订阅模式,但也支持排队模式,在后一种情况下,处理顺序并不重要,我们只想在任意数量的消费者之间平衡一个主题的消息:



这(以及面向队列的特性,如“死信队列”和支持重新发送的否定确认)意味着 Pulsar 经常可以取代 AMQP 和 JMS 以及 Kafka 风格的发布/订阅,采用 Pulsar 的企业有机会进一步降低成本。


小结

与 Kafka 相比,Pulsar 的架构使它在跨地域复制、扩展、多租户和队列等方面具有重要的优势。1 月 27 日,DataStax 宣布收购Kesque(Pulsar 即服务),加入到了 Pulsar 社区,并开源了 Kesque 团队在Luna Streaming中构建的管理和监控工具。


查看英文原文:

Four Reasons Why Apache Pulsar is Essential to the Modern Data Stack

2021-02-09 17:465617

评论

发布
暂无评论
发现更多内容

人工智能 | Bug预测新纪元:基于迁移学习的创新应用

测吧(北京)科技有限公司

测试

数仓实践丨常量标量子查询做全连接导致整体慢

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

人工智能 | 经典卷积网络模型解析:深度学习中的里程碑

测吧(北京)科技有限公司

测试

[开源更新]企业级身份管理和访问管理系统、为数字身份安全赋能

小狗围观科幻

软件测试 | 引领未来,掌握模型驱动技术的人工智能革命

测吧(北京)科技有限公司

测试

谷歌访问助手(谷歌浏览器插件)Mac中文版

Geek_幻墨成诗

谷歌访问助手

Office 2019 v16.78.3激活工具(office2019套件)

Geek_幻墨成诗

Office 2019下载 Microsoft Office 2019

Final Cut Pro for Mac(fcpx视频剪辑) v10.6.10中文版

Geek_幻墨成诗

Final Cut Pro下载 Final Cut Pro中文版 Final Cut Pro破解版 Final Cut Pro教程 Final Cut Pro

Unity3D 导出的apk进行混淆加固、保护与优化原理(防止反编译)

Ableton Live 12 for Mac(音乐制作工具)激活版

iMac小白

人工智能 | 视觉场景中的相应时间分析与弹窗检测技术

测吧(北京)科技有限公司

测试

人工智能 | 无参照模型预测技术:提升模型性能和应用体验的新思路

测吧(北京)科技有限公司

测试

人工智能 | 计算机视觉迁移学习:开启智能化视野的大门

测吧(北京)科技有限公司

测试

Photoshop 2020 for mac(PS2020)v21.2.5中文激活版

Geek_幻墨成诗

Photoshop 2024破解版 Photoshop2020

超赞!让vue开发效率翻倍的工具分享

秃头小帅oi

Vue 前端

人工智能 | 自然语言处理技术原理介绍

测吧(北京)科技有限公司

测试

自然语言处理技术原理解析

测吧(北京)科技有限公司

测试

人工智能:亲手打造的强化学习模型征服游戏世界

测吧(北京)科技有限公司

测试

Photoshop 2024(ps2024最新)v25.1激活版

Geek_幻墨成诗

Photoshop 2024破解版 Photoshop2024下载

用 LangChain 搭建基于 Notion 文档的 RAG 应用

Zilliz

Milvus Zilliz AIGC langchain rag

人工智能 | 掌握有参照的 UIDiff 检测技术:优化用户界面的关键工具

测吧(北京)科技有限公司

测试

和鲸科技与国科环宇建立战略合作伙伴关系,以软硬件一体化解决方案促进科技创新

ModelWhale

软件 服务器 算力 大模型 计算平台

软件测试 | 基于无监督深度特征的视觉识别技术:人工智能的前沿探索

测吧(北京)科技有限公司

测试

人工智能 | 引领未来,掌握图像目标检测:PyTorch带您探索智能时代

测吧(北京)科技有限公司

测试

Pixea Plus for Mac(高效图片浏览器)v5.2激活版

iMac小白

Reallusion Cartoon Animator for Mac(2D动画设计制作软件) v4.51.3511.1完美激活版

mac

苹果mac Windows软件 Reallusion 2D动画设计制作软件

“降本增效”才是选择低代码开发的主旋律

互联网工科生

软件开发 低代码开发 JNPF

云边协同的RTC如何助力即构全球实时互动业务实践

ZEGO即构

边缘计算 实时音视频 MSDN 云边协同 音视频质量

井然有序 | AIRIOT智能安防系统解决方案

AIRIOT

物联网 智能安防

第16届中国R会议暨2023X-AGI大会开幕,和鲸科技分享ModelOps在数据科学平台中的实践与应用

ModelWhale

R语言 数据科学 算法模型 ModelOps 计算平台

如何有效的进行 E2E

优测云服务平台

测试 测试技术

Apache Pulsar对现代数据堆栈至关重要的四个原因_架构_Jonathan Ellis_InfoQ精选文章