跳至主要内容

AWS 解决方案库

在 AWS 上使用事件驱动型架构构建支付系统的指南

概览

本指南演示了近乎实时地处理支付系统账户过账事件。支付系统必须持久存储和幂等处理所有客户交易和活动,以保持数据完整性,这一过程需要使用具备事务处理功能的关系数据库。这些应用程序通常使用同步请求,必须逐个而非并发地向数据库提交事务。本指南旨在在系统中创建异步、事件驱动型架构模式,您可以通过基础设施即代码(IaC)在环境中自动部署这些模式。

工作原理

这些技术细节包含一张架构图,用于说明如何有效使用本解决方案。该架构图展示了关键组件及其相互作用,并逐步概述了架构的结构和功能。

Well-Architected 支柱

上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。

AWS CloudFormation 可帮助您通过 IaC 模板自动构建和部署基础架构,从而帮助您限制人为错误并进行小规模、可重复、增量和可逆的更改。AWS X-Ray 跟踪功能和事件,生成应用程序拓扑图,可用于提高性能并在故障排除期间识别瓶颈。Amazon CloudWatch 充当中央遥测存储,提供来自 Lambda 和 Step Functions 的日志收集、控制面板、警报和分析功能。AWS CloudTrail 监控和记录您的 AWS 账户中的所有 API 活动,使您能够审计活动或对 EventBridge、 Lambda 和 Step Functions 进行的 API 调用。

阅读卓越运营白皮书

AWS 身份和访问管理 (IAM) 建立了强大的身份和授权基础,您可以按照最小权限原则设置基于身份的策略,以限制 L ambda 、Ste p Function s 和 Event Bridge 对下游 AWS 服务的访问权限。您也可以使用基于资源的策略来进一步限制访问权限。此外,本指南可让您自始至终对敏感数据进行加密。AWS 密钥管理服务 (AWS KMS) 提供安全解密和加密静态数据的能力。Step FunctionsEventBridge 对静态数据和传输中数据进行加密,而 Lambda 只对传输中数据进行加密。您可以使用 AWS 密钥管理器安全地存储 Lambda 代码密钥

阅读安全白皮书

本指南支持结合使用 EventBridgeLambdaStep Functions 来创建事件驱动的容错架构。这三种服务都是区域性的,部署在多个可用区(AZ)中。EventBridge 使用总线和规则来启用具备下游目标的发布-订阅模式,这种模式支持松耦合,使组件能够独立扩展。适用于 AWS Lambda (Python) 的 Powertoo ls 允许您编写和实现等导函数,这样每个请求只能完成一次。Lambda 函数在设计上是无状态的,可以独立扩展,并且 Lambda 会将失败的请求发送到 Amazon SQS 死信队列,以进行故障隔离和进一步的故障排除。Step Functions 提供内置错误处理、超时和并行处理,以可靠地处理分布式应用程序。

阅读可靠性白皮书

EventBridge 异步调用 Lambda 时,Lambda 会管理自己的扩展机制,而无服务器架构则消除了进行计算活动时运行和维护物理服务器的需要。Step Functions 会编排业务流程,在出现超时的情况下,您可从容地终止长时间运行或卡住的调用,或执行替代任务。此外,DynamoDB 本质上就是为高性能处理海量数据而设计的。其按需模式使其无需进行任何容量规划即可处理大量请求。通过精心设计的 DynamoDB 主键,您可以构建具有大量不同值的表,并避免在读取或写入时出现节流。

阅读性能效率白皮书

本指南使用无服务器服务,采用按价值付费的计费模式,您无需为超额配置付费,而且还会对资源利用率进行优化,从而降低应用程序的总成本。您也无需管理基础设施或创建补丁,因而也降低了运营成本。此外,EventBridge Pipes 提供了一种具有成本效益的一致方式,以在事件产生器和使用者之间创建点对点集成。DynamoDB 按需容量模式根据流量进行扩展,帮助您避免数据库资源过度配置或配置不足。此外,您可以使用由 AWS Graviton2 处理器提供支持的基于 ARM 的 Lambda 架构来获得高达 20% 的成本效率。

阅读成本优化白皮书

该架构使用 AWS 无服务器服务,其设计具有弹性,仅预置完成所需任务所需的资源。在 Lambda 中使用 AWS Graviton2 处理器可以将性能提升多达 19%,成本降低 20%,从而降低能耗。通过使用与 Step Functions 的直接服务集成,您可以进一步减少工作负载的碳足迹,避免运行不必要的组件。

阅读可持续发展白皮书

自信地进行部署

在账户中启动此指南所需的一切已准备就绪

我们将引导你完成

深入阅读实施指南,了解其他自定义选项和服务配置,以根据您的特定需求量身定制配置。

打开指南

让我们来实现它

为部署做好准备了吗? 查看 GitHub 上的示例代码,了解详细的部署说明,以根据需要按原样部署或进行自定义部署。 

转到示例代码

免责声明

示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。

找到今天要查找的内容了吗?

请提供您的意见,以便我们改进网页内容的质量。