写点什么

Coinbase 是如何在其加密货币交易平台上应对扩展性挑战的

2018 年 8 月 16 日

在 2017 年的数字货币热潮中,数字货币交易公司 Coinbase 在他们的平台上遇到了扩展性方面的挑战。工程团队主要通过升级和优化 MongoDB 、热点流量隔离解决了这些挑战,并构建了捕获和回放工具以应对未来的流量暴增。

在 2017 年 5 月至 6 月间,Coinbase 的客户流量飙升超出了预期的水准,超过了通常最大流量的五倍并导致了停机 。团队首先解决了一些简单的问题:垂直扩展、升级MongoDB 以提升性能、优化索引以及基于热点的流量隔离。现有的监控系统不足以识别上下文信息,所以团队通过代码instrumentation 技术进行了增强,以便于记录丢失的数据。尽管有了这些改善,在 2017 年 12 月比特币价格飙升阶段,Coinbase 还是再次遇到了多次宕机。从此之后,团队致力于通过捕获和回放工具模拟流量的模式来处理更高的流量。

在最初的停机期间,Coinbase 的Ruby 应用和MongoDB 都遇到了更高的延迟,在耗时方面,Ruby 和MongoDB 是大致均等的。为了更好地理解这些跨组件调用的上下文信息,团队通过修改 MongoDB 的数据库驱动记录了额外的数据。这帮助他们将问题的范围缩小至一个未经优化的响应对象,该对象增加了网络负载。这个问题的解决使应用程序的性能得到了很大的提升。另外,通过在对象 - 关系映射层(Object Relational Mapping,ORM)和驱动层增加基于 Memcached 的缓存提升了大规模读取的吞吐量。增补缺失的索引也改善了响应时间。到2017 年6 月,团队已经将MongoDB 集群升级到3.2,它拥有更快的WiredTiger 存储引擎。Coinbase使用Redis 来实现限速等服务,这些服务在停机期间曾经受到Redis 的单线程模型影响

为了应对未来可能出现的流量暴增,团队开发了名为Capture 和Cannon 的工具,它们可以从生产环境的系统中捕获流量,并根据需要针对新系统进行回放,以测试系统的弹性。Capture 和Cannon 都是基于 mongoreplay 的,mongoreplay 工具能够从网络接口捕获针对 MongoDB 实例的流量,并记录所调用的命令。这些日志可以基于其他的 MongoDB 实例进行回放。流量能够跨应用服务器进行捕获,然后合并到单个文件之中。捕获到的流量和磁盘快照都保存到了 AWS S3 之中,Cannon 随后能够基于它们进行回放。

Coinbase 维护了一个公开的状态信息页面,地址是 https://status.coinbase.com/

查看英文原文: How Coinbase Handled Scaling Challenges on Their Cryptocurrency Trading Platform

2018 年 8 月 16 日 06:232248

评论

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

【架构师训练营第 1 期 10 周】 作业

Bear

极客大学架构师训练营

Week 6 作业

evildracula

学习 架构

Week 6 学习总结

evildracula

学习 架构

架构师训练营week10总结

FG佳

架构一期第十周作业

Airs

BATJ一线大厂面试必问的4大框架源码,该如何学习?

Java架构师迁哥

第六周 cap原理

落朽

第六周作业

willson

极客大学架构师训练营

week 6 学习笔记

willson

身为一名优秀的程序员,如何避免满屏的写 if else!

Java架构师迁哥

架构师训练营 - 第 10 周课后作业(1 期)

阿甘

架构师训练营第六周作业

李日盛

CAP

架构师训练营第一周”架构方法“作业

随秋

极客大学架构师训练营

Week6 (技术选型二)作业 2

shuyaxx

架構師訓練營第 1 期 - 第 10 周作業

Panda

架構師訓練營第 1 期

训练营第六周作业

大脸猫

极客大学架构师训练营

【第十周】课后作业

薇凉

架构师训练营第六周学习笔记

李日盛

笔记

成为架构师 - 架构师训练营第 06 周

陈永龙Vincent

【架构师训练营第 1 期 10 周】 学习总结

Bear

极客大学架构师训练营

技术选型总结二

Mars

技术选型

Week6 (技术选型二)作业1

shuyaxx

第十周学习总结

knight

训练营第六周总结

大脸猫

极客大学架构师训练营

第 10 周 作业

Pyr0man1ac

Spring中的线程池与任务调度

Rayjun

Java spring 线程池

架构师训练营week10

FG佳

架构师一期

关于微服务架构

天天向上

极客大学架构师训练营

架构师训练营第一周”架构方法“学习笔记

随秋

极客大学架构师训练营

【第十周】课后作业

云龙

架构师训练营第十周课程笔记及心得

Airs

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

Coinbase是如何在其加密货币交易平台上应对扩展性挑战的-InfoQ