Coinbase交易所背后,在弹性应用程序设计上

澳门新葡萄赌场娱乐 ,这些改进提供的详细数据使团队能够快速找到一些故障停机期间的异常特征,甚至在非故障停机期间也可以。

虽然eBay的所有非关系数据库选择都提供了内置的故障恢复能力,但它们可以使不同的设计影响应用程序的行为。DBA团队在六个维度上评估这些差异:可用性、一致性、持久性、可恢复性、可扩展性和性能。例如,使用点对点、无主设计的NoSQL数据库具有昂贵的数据修复和重新平衡过程,必须在节点发生故障之后启动。此重新平衡过程会影响应用程序吞吐量和延迟,并可能导致连接堆叠,因为客户端等待恢复,这可能导致应用程序停机。为了减轻这些影响,eBay不得不将最初在Oracle上开发的应用级产品分层在这些无数据库之上。这种方法使DBA团队能够将更大的集群分成一系列子集群,从而将重新平衡开销与较小的一组节点隔离开来,同时只影响了一小部分查询。eBay DBA团队构建其弹性设计模式是针对这些不同类型的数据库行为。

澳门新葡萄赌场娱乐 1

标准MongoDB设计模式被用作eBay的“阅读强化/高可用读取模式”的基础,该演示文稿用于为eBay产品目录提供支持。对于目录负载,MongoDB副本集可以扩展到50个成员,为大并发量的数据分发提供了读取的可扩展性和恢复能力。

在此期间,平台的交易量持续超越了事先预定的红线,导致 Coinbase 平台出现了一段时间的故障停机。

【编辑推荐】

澳门新葡萄赌场娱乐 2在团队协作完成这次挑战后,我们为 Coinbase 目前的可靠性状态感到自豪。

图1:MongoDB恢复架构的eBay设计模式(图片由eBay的MongoDB世界大会演示提供)

实践证明,在保障平台的安全性之外,其可靠性和可扩展性也是不容忽视的。

eBay目前运行超过3000个非关系型数据库实例,为一系列应用程序提供支持,可在其间管理数PB数据。 在过去,Oracle是“记录系统”,而非关系型数据库则处理“参与系统”中使用的临时数据。 然而,非关系型数据库环境已经成熟。通过一致的时间点备份和恢复,MongoDB现在也在eBay上服务于记录系统的用例。

第一个主要异常是查找设备操作的响应信息数据量过大。

在精心改进我们的数据库查询操作之前,这几乎是不可能实现的调试问题,有了新工具,现在结果显而易见。

为了构建应用程序,eBay开发人员可以从五个公认的数据库标准中进行选择。 除了MongoDB,团队还可以选择使用Oracle或MySQL关系数据库和两个NoSQL数据库。 曲先生的DBA团队为适当的数据库选择提供指导,根据应用程序的数据访问模式、用户负载、数据类型等进行选择。

解决方法就是,Cannon 工具通过从每次捕获中打开一个10MB的缓冲区来同时进行合并和过滤捕获。

澳门新葡萄赌场娱乐 3

而与之相对的中心化机构 Coinbase 交易所,虽然在2017年也曾受平台扩展性瓶颈影响而导致大规模故障停机,但自此以后,尽管数字货币交易人群不断暴增、交易请求数量呈指数增长,但 Coinbase 平台貌似并没有再受扩展性问题的影响,持续、稳定地运行着,令人差异,他们是如何做到的?

澳门新葡萄赌场娱乐 4

比较有效的方案就是通过模拟几倍于过去经历的交易量峰值来测试平台环境,来发现下一个问题点可能来自哪里。

曲先生开始讨论多年来可用性概念的变化。过去,网站可以接受每周维护的预定停机时间。随着当前服务的全球化,用户或业务都不会接受如此频繁的停机!此外,大多数公司现在在商业硬件平台上构建其服务,而不是以前的 Sun Solaris / Sparc服务器。虽然商业硬件的成本要低得多,但是它也经常故障。

澳门新葡萄赌场娱乐 5

  • 对MongoDB 3.4添加区域分片使得eBay能够为需要跨多个数据中心提供分布式、永久写入可用性的应用程序提供服务。
  • 针对即将发布的MongoDB 3.6版本的可重写的写入将允许eBay减少应用程序异常处理代码。 

因此,需要一个框架来回答这些问题并可视化 Coinbase 环境组件之间的关系。

在今年的MongoDB全球大会上,eBay的首席NoSQL DBA曲峰提供了弹性应用程序的实用设计模式 — 他的团队开发的一套支持企业级MongoDB部署的架构蓝图。

目前,我们已经组建了三个独立的专注维护平台高性能和可扩展性团队,为未来加密货币热情的暴涨做好准备。

其次,eBay开发人员可以使用特定的MongoDB写入和读取配置来设计模式,以调整最佳满足不同应用需求的持久性和一致性级别。

每次故障停机的模式都是相同的:主监控平台会显示100倍的延迟峰值,Ruby 和 MongoDB 延迟时间各是50倍。

曲先生指出,随着近期的产品功能增多,MongoDB正在越来越满足更广泛的应用需求:

那么,Coinbase 团队是如何应对2017年突增的平台交易量?之后又是如何逐步扩展平台容纳量、持续稳定运行呢?其扩展性解决方案在去中心化应用领域是否有借鉴意义?接下来,听 Luke Demi 讲述 Coinbase 平台背后的故事!

图2:MongoDB极高读/写模式的eBay设计模式(图片由eBay的MongoDB世界演示提供)

在2017年首次爆发之前,Coinbase 团队就用表示四到五倍平台每日最大交易量的红线来标示出预计的平台交易量,即每分钟大约100000个后端API请求。

对于更多的写入密集型负载,eBay开发出了“极高读/写模式”,该模式在其美国数据中心部署了一个分布式的MongoDB集群。

澳门新葡萄赌场娱乐 6

作为世界前十十个全球零售品牌,拥有1.7亿活跃买家和10亿在线市场,eBay无法承受系统停机带来的损失。这就是为什么公司依靠MongoDB作为其核心企业数据平台标准之一,为运行ebay.com的多个面向客户的应用程序提供支持。

解决方案就是执行交易流量的捕获和回放,明确地说就是在数据库上按需生成人为的“加密狂热(crypto mania)”。

曲先生介绍了eBay的“MongoDB弹性设计模式”,如图1所示。

这种方案比生成合成流量的方案更好,因为它去除了合成脚本需要保持最新的要求。每次运行套件时,都要确保查询操作根据捕获的数据准确映射到应用程序生成的流量类型。

在这种设计模式中,一个7节点的MongoDB副本集遍布eBay的三个美国数据中心。此模式可确保在主数据中心发生故障的情况下,数据库集群可以通过在剩余的数据中心之间建立一个仲裁来保持可用性。MongoDB的副本集成员可以被分配选举优先级,以控制哪些Slave成员被认为是在Primary成员失败时的晋升候选人。例如,如果副本集Primary成员失败,则DC1本地的节点将被优先选择。只有整个DC1遭受中断,DC2中的复制集成员才会被认为可以进行选举,根据哪个节点已经执行最近的写操作选择新的Primary成员。 可以通过使用MongoDB的 majority write concern来扩展这种设计模式,以使得能够跨数据中心持久的写入。

澳门新葡萄赌场娱乐 7在2017年的交易量开始井喷的早期,每分钟平台后端API请求的数量

澳门新葡萄赌场娱乐 8

今天,Coinbase 团队正积极努力为下一次加密货币市场的井喷做准备。

这两个因素从根本上改变了工程团队如何考虑可用性,并且引导eBay创建其“弹性设计模式”,以建立最大化平均故障时间(Mean Time To Failure,MTTF)并最大限度地减少平均恢复时间(Mean Time To Recovery,MTTR)的数据库最佳实践。

为了解决这个问题,Coinbase 团队将这种多对多关系重构为简单的一对多关系,其中每个设备只映射到一个用户。

虽然安全性始终是我们的首要任务,但我们也乐于将确保我们平台可靠性、可扩展性当作Coinbase的主要任务!

在环境中选择一个特定数据库集群后,Capture 会同时启动数据库集群快照并开始捕获定向到该数据库集群的应用程序服务器上的原始流量。然后,它会在一段时间后将这些捕获的加密信息保存到S3回放。

这个发现来自于 Cannon 工具的调试功能。 Cannon 工具能够检查特定的捕获文件并查看其中的前100条消息。 经过检查,确实发现了一些有趣的事:

虽然才刚刚开始使用 Capture 和 Cannon 工具,但在 MongoDB 数据库集群上执行这类的负载测试时,我们取得了一些新发现。

虽然在井喷期间做这些改进工作很容易,即使未来将处于交易量非常低的周期,但仍然需要找到一种方法来改善系统在未来的表现。

澳门新葡萄赌场娱乐 9

事实证明,数据库 MongoDB 的 Ruby 语言驱动程序未完全遵循 MongoDB 驱动程序的设计规范,并且在每次查询数据库时通过执行 ping 命令以检查复制集状态。

为此,我们创建了一个名为“Capture”的工具,其内部封装了现有工具“mongoreplay”。

在2018年的 MongoDB 社区大会中,包括 Luke Demi 在内的 Coinbase 工程师都谈到了2017年的经验和教训,以及此后如何增加平台扩展性的解决方案。

Coinbase 已有的监控工具无法为当时遇到的一些关键问题提供明确的答案,我们把这个现象称为“幽灵”。

澳门新葡萄赌场娱乐 10事实证明,去年5月和6月经历的交易量井喷与去年12月和今年1月经历的交易量井喷根本不是一个数量级的。

然而,在2017年5月和6月,随着以太币价格的飙升,平台的交易量也随之猛涨并超越了红线。

当用户登录网站购买加密货币或查看相关信息时,大量的查询会导致过重的网络负载。

2016年,也就是加密货币市场井喷的前一年,Coinbase平台的交易量基本恒定。

修改后的数据库驱动程序会记录超过特定响应时间阈值的所有查询操作,以及请求/响应大小、响应时间、源代码和查询类型等重要信息。

借助这些修复和其他方法,Coinbase 平台就能够承受更大的交易量激增。

本文由新葡萄京娱乐在线赌场发布于澳门新葡萄赌场娱乐,转载请注明出处:Coinbase交易所背后,在弹性应用程序设计上

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。