如何用八台虚拟机处理每日十亿笔交易?PayPal是怎么做到的?
最近的一段时间,我在Reddit上看到一篇引起了我注意的帖子,标题是:
“PayPal如何仅用8台虚拟机扩展至每日处理数十亿交易”。
我对这个让人吃惊的壮举感到十分地好奇,便深入到网络中,不断阅读PayPal工程师的博客与各种文章。
我的目标是揭示这一惊人成就后面的“魔法”。
而今天,我很高兴在这篇文章中与各位分享我的发现。但是,这里有个转折 —— 我们不仅要谈论它,我们还会深入到Go语言代码中,以实际的操作来理解使这一显著里程碑成为可能的技术。
因此,让我们一起开始这次美好旅程,探索PayPal如何仅用8台虚拟机应对十亿交易的挑战。
1998年12月,美国加利福尼亚州帕洛阿尔托
一个工程师团队(Max Levchin, Joe Lubin, 和 Zach Simons)创建了一个在线支付服务,他们将其命名为PayPal。
在初期,产品经历了人气的暴增,并吸引了越来越多的用户,支付平台遭遇了大幅度的流量增长。为了应对这种高涨的需求,并确保用户体验无缝,这个团队采取有策略地投资,并购买了新的硬件以便扩展。
然而,快速的增长并没有放慢。仅在接下来的两年里,PayPal 达到了每日一百万笔交易的里程碑。为了应对这种爆炸性的增长,他们通过在超过1000台虚拟机中运行服务,以此来扩大自己的基础设施。
虽然这一举动成功地解决了平台的可扩展性挑战,但也引入了新的复杂性和问题,这些问题源于需要管理一个更大且更复杂的系统。
以下是PayPal 在扩展到每日超过一百万笔交易时面临的一些产品与技术挑战:
网络基础设施
请求的增加意味着每一个请求需要更多的网络跳转才能完成,这会导致延迟加剧。
此外,维护扩展后的网络基础设施变得更加昂贵。