HeadlinesBriefing favicon HeadlinesBriefing.com

美国运通支付规模架构

ByteByteGo •
×

美国运通支付规模架构

客户进行支付时,期望交易能几乎瞬间获得批准或拒绝。这一单一需求决定了支付处理的所有构建方式,因为整个处理过程必须在这个短暂的时间窗口内完成。我们与美国运通杰出工程师Ben Cane进行了交流,以了解其平台如何处理这一问题。

为了理解其运作方式,让我们设想一笔交易到达美国运通时的情景。交易被路由到多个独立单元之一,并经过一系列微服务处理。然而,在流程中途,某个服务开始出现故障,而客户在结账终端仍在等待。在故障单元内重试交易会带来明显风险。此外,将交易转移到另一台服务器则是一个更难的问题。

美国运通工程团队通过基于单元(cell-based)的架构来处理这一问题,该架构有助于将中断的影响降至最低。在与美国运通工程团队的对话中,我们了解到大部分工程精力都用于保持这种隔离的完整性。在典型的支付流程中,美国运通处于链条的中间位置。收单机构与商户保持关系,将交易发送给美国运通,美国运通再将交易传递给发卡机构,由其处理账户余额。

2018年,美国运通开始将这一平台现代化,迁移到云原生基础设施。很快,一个假设显然需要改变。虽然旧系统运行在专为持续运行而设计的硬件上,但云基础设施的行为有所不同。最终采用的方案是由数十年的内部思考所驱动的。Ben指出,在SOA时代,这些模式就已存在,甚至早于“单元化架构”这一更正式术语的出现。在单元化架构中,一个单元是支付处理栈的完整、自包含的副本,包括微服务、数据库、DNS等。

关键实体:公司:美国运通 | 人物:Ben Cane

常见问题解答:

问:美国运通如何确保支付处理在大规模下的可靠性?

答:美国运通采用单元化架构,每个单元都是支付处理栈的完整、自包含副本,包括微服务、数据库和DNS。这种设计实现了故障隔离,因此如果某个服务发生故障,影响仅限于该单元内,支付仍能快速处理,而不会导致整个系统中断。