re:Invent 2023 | 使用CockroachDB构建任务关键型应用程序

关键字: [Amazon Web Services re:Invent 2023, CockroachDB, Distributed Database, Serial Consistency, Global Scale, High Availability, Mission Critical]

本文字数: 1100, 阅读完需: 6 分钟

视频

 

 

如视频不能正常播放,请前往bilibili观看本视频。>> https://www.bilibili.com/video/BV1UM411d7db

导读

每家银行、零售商和 SaaS 公司都依赖关键任务应用程序为其业务提供动力。但是,如何构建关键任务应用程序以实现规模和弹性是一项挑战。可用性是不容置疑的--即使是少量的停机也可能意味着收入和客户的损失。一致性和正确性同样至关重要。了解如何对关键任务应用程序进行现代化改造,以创造更好的客户体验、适应不断变化的工作负载需求并确保业务连续性。本讲座将重点介绍企业如何使用分布式 SQL 数据库 CockroachDB 进行水平扩展、消除性能瓶颈、保持数据本地性并在几乎任何类型的中断中存活下来。本讲座由亚马逊云科技合作伙伴 Cockroach Labs 为您带来。

演讲精华

以下是小编为您整理的本次演讲的精华,共800字,阅读时间大约是4分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。

安德鲁·巴比特是一位拥有17年分布式系统经验的高级工程师,自18个月前加入Cockroach Labs以来,他一直致力于公司开创性的弹性和可扩展数据库系统。CockroachDB的名字源于蟑螂惊人的适应能力,能在恶劣环境中生存,这与CockroachDB的设计目标相呼应。

安德鲁详细阐述了数据库过去几十年的发展历程。从20世纪60年代和70年代的早期先驱系统如IBM的IMS等单节点、单体系统,到随着企业数据需求增长,通过在单个系统中添加更多资源来扩大规模的演变。然而,到了21世纪初,开发人员意识到单一数据库服务器的扩大规模非常复杂且容易出错。

为了解决这个问题,新一代的分布式NoSQL数据库应运而生,如DynamoDB和Cassandra。它们通过放弃复杂的分布式一致性保证,只支持简单的查询API,从而能够轻松地跨多个节点扩展。然而,开发人员发现受限的API使用起来非常痛苦。

为了解决这一矛盾,托管数据库提供商如Amazon RDS等将传统单体数据库的操作性变得更加简单。但仍然存在内在的扩展限制。开发人员渴望拥有传统关系型数据库的简单、功能丰富的SQL,同时也具备NoSQL的可扩展性。

CockroachDB正是为了满足这一需求而诞生的。它提供了易于使用的、与PostgreSQL兼容的SQL,同时不会牺牲分布式可扩展性、弹性和性能。尽管谷歌的Spanner在核心技术方法上取得了一些突破,但CockroachDB的目标是让这些功能惠及更广泛的大众。

安德鲁表示,CockroachDB非常适合任务关键型应用,因为停机时间可能是灾难性的,例如DoorDash这样的应用。即使是短暂的故障也可能成为CockroachDB主要用户的头条新闻。一位用户声称,他们在测试中找不到可能导致CockroachDB崩溃的任何故障场景。

在底层,CockroachDB将处理查询和交易的分布式SQL层与负责复制、一致性和可扩展性的分布式键值存储分开。数据被自动划分为一组排序的键值对范围。范围使用Raft共识协议进行复制。权限在提交之前在节点之间进行复制。

这种架构允许轻松地添加节点以扩大容量。系统会自动将数据副本在现有节点和新节点之间进行重新平衡。关闭一个节点将会反向这个过程。Andrew通过实时集群演示了这一过程,展示了重新平衡过程中对吞吐量没有影响。他还通过强制终止一个节点展示了恢复能力。在短暂的停顿后,集群在几秒钟内恢复正常运行。整个可用性区域可以在租赁转移和副本重建的过程中被暂时停止,这只会导致轻微的中断。CockroachDB旨在应对节点、机架、区域、乃至云服务提供商层面的故障。

CockroachDB的全球部署不仅提高了生存性,还带来了性能问题。北美和欧洲之间的往返延迟接近100ms的阈值,用户可能会感到延迟。CockroachDB采用了一些策略来实现全球分布式数据的低延迟:

  • 区域表会将数据本地化到其所在的位置,例如来自相同地区的客户数据。这提供了几乎瞬时的响应时间。无论位置如何,权限只需进行一次往返操作。

  • 参考表在全球范围内复制数据,使其对所有用户都可用。使用权限表确保跨区域序列化。虽然写入可能需要更长的时间,但读取速度很快。

  • 追随者读取允许从任何区域读取可能过期的情况。这为减少非关键读的延迟提供了灵活性。

遵循严格的序列化并提供零停机时间的模式更改,这使得与简化应用程序开发相比,选择弱最终或快照隔离级别变得更加简单。然而,CockroachDB确实计划提供一个读提交的隔离级别作为迁移应用程序的选择。

在实际应用中,尽管在CAP定理下是一个AP系统,但CockroachDB为大多数实际场景提供了强大的一致性和可用性。只有已经被分区并无法处理服务流量的节点才会降低可用性。

CockroachDB在一个连贯且易于使用的平台上融合了传统关系型SQL的优势、可扩展的NoSQL特性和云端灵活性。它既可以在本地环境中运行,也可以在公共云环境、混合环境或通过其云服务进行管理。超过300家企业,其中包括一些大型金融机构,都在依赖CockroachDB来支持他们最为关键的应用和数据。

下面是一些演讲现场的精彩瞬间:

演讲者在讨论其从事分布式系统工作17年的经验时,分享了他对CockroachDB技术的热衷。

8aecdced4aec487a8f86b18943c3d55e.png

他强调了在大型、任务关键的系统中减少停机时间和提供低延迟数据访问的重要性。

c8834cc945384e988004fcbe6acfaad9.png

为了实现应用架构中的自动且可负担的可扩展性,避免在需求突然激增时进行昂贵的重新设计,演讲者提出了范围作为系统的基本单位。

324105c41da34acba03254763d163f13.png

每个范围都由一个Raft共识组组成,该组将写入操作序列化为具有序列号日志。

c810408a99e84cf7b3c2dbffd95dbccb.png

亚马逊云科技采用了联合Raft配置,在DynamoDB副本重新平衡过程中同时运行两个临时Raft组,以确保在没有数据丢失的情况下正常运行。

bb437f5c99ed4af78c6636d6e2ab92c3.png

通过了解数据和用户位置的模式,亚马逊云科技能够提供低延迟和一致性。

7e5664ad237b45f6bc719049c88c883a.png

此外,演讲者宣布,所有亚马逊云科技的源代码都将公开,这表明了其对于透明度的承诺。

dc44f2625d9b440d88992150fb8967ac.png

总结

演讲者探讨了CockroachDB如何提供一个针对可扩展性、弹性和数据局部性而设计的分布式SQL数据库。其功能包括自动伸缩、快速添加和移除节点以及从故障中迅速恢复。此外,CockroachDB还支持强序列化,以确保应用程序的正确运行。为了在分布式环境中实现低延迟,CockroachDB提供了区域表、全局复制表、行级别的地区分片以及稍过时数据的追随者读取功能。CockroachDB的目标是在大多数现实场景中同时实现一致性和可用性,从而挑战CAP定理的局限性。演讲者将通过实时演示缩放、故障恢复以及在节点维护期间的数据读取来展示这些功能。最后,他将描述各种部署选项,包括自主托管、专用云和服务无服务器模式。核心信息是CockroachDB结合关系型、NoSQL和云数据库的优点,为关键业务应用提供支持。

演讲原文

https://blog.csdn.net/just2gooo/article/details/134819680

想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!

2023亚马逊云科技re:Invent全球大会 - 官方网站

点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!

点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!

即刻注册亚马逊云科技账户,开启云端之旅!

【免费】亚马逊云科技“100 余种核心云服务产品免费试用”

【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”

亚马逊云科技是谁?

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

5b1c772438634338b773a09bfd5a9404.png

 

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李白的朋友高适

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值