业务场景与组件关系
阿里云架构解析 · 通用金融业务场景
本页通过通用金融业务场景说明组件组合和数据流转方式。相关流程为参考架构,不对应具体机构的系统、容量、接口或实际部署。组件定义参见 核心组件介绍。
场景内容区分业务事实、消息事件和派生结果。业务事实记录已确认的业务状态,消息事件推动后续处理,派生结果包括凭证、统计和分析数据。
1.支付后续处理与电子凭证生成
场景概述
支付完成后,系统通常还需要生成凭证、发送通知并更新统计数据。将全部后续动作放入同步请求会延长主流程处理时间。SOFAMQ 可用于拆分适合异步执行的任务。
组件组合
SLB 接收并分发请求,业务应用运行在 ECS 或 ACK 上。RDS 保存示例业务状态,SOFAMQ 传递后续处理消息,消费应用生成凭证并写入 OSS。本场景使用 RDS 说明结构化事务记录,实际数据库选型以业务需求为准。
处理流程
- 同步请求完成支付业务规定的处理步骤,并返回已经确认的业务状态。状态确认范围由支付业务流程和外部参与方的处理结果共同决定。
- 业务状态与待发送事件在同一本地事务中保存,用于减少业务提交后事件未记录的中断点。该方式通常称为本地事件表或 Outbox 模式。
- 事件投递应用独立读取并发布消息。若发送已经成功,但尚未来得及更新投递状态,重试可能再次发送,因此下游仍需幂等。
- 凭证生成应用确认未完成任务后生成文件。对象写入与数据库更新不在同一个普通数据库事务中,要安排可重复执行、失败重试和多余对象清理。
- 消费应用在处理结果可靠保存后确认消费。确认前发生异常时,消息可能重新投递,消费端通过幂等设计控制重复处理。
SOFAMQ 的消息角色和异步能力参见 官方产品说明,消息重复处理机制参见 官方开发示例。图中的 Outbox 流程为参考实现,具体方式应结合应用框架和产品版本确定。
运行说明
凭证生成应用暂停时,已确认的业务状态可按业务设计继续提供查询,凭证状态显示为 “生成中”或“待处理”。运行管理应同时关注消息积压、重试期限、处理容量和最终补偿。
消息队列用于缓冲工作并解耦处理环节。业务完成、消息接收和后续任务完成应分别记录状态。
2.高并发查询与缓存访问
场景概述
高频查询可能重复读取同一类展示数据并持续占用数据库资源。Redis 可缓存可重建且允许在规定时间内更新的展示数据。最终余额和账务结果等强一致性数据应按照业务规则确定访问方式。
处理过程
应用完成身份和权限校验后读取缓存。缓存命中时返回有效结果,未命中时访问 RDS,并按照缓存策略回填数据。数据写入、缓存更新和失效策略由应用统一设计。
本例的缓存键仅描述公开展示内容。个人数据查询场景应采用与客户身份和授权范围匹配的缓存隔离设计。
缓存产品的协议与形态参见 官方 Tair/Redis 介绍。上图为通用应用缓存模式。
运行说明
Redis 暂时不可用时,回源范围应根据数据库可用处理能力进行控制。应用可采用有界回源、请求合并、降级和合理的过期策略;对数据时效性要求较高的请求,应返回明确状态。
缓存设计应同时考虑命中率、回源压力、数据有效期和一致性要求。
3.电子凭证的数据与文件存储
场景概述
凭证业务既有“这份材料属于哪项记录”的结构化信息,也有实际文件内容;生成过程还可能涉及多个程序共享工作文件。这三种需要可以分开理解。
| 工作 | 本例中的承载方式 | 说明 |
|---|---|---|
| 保存凭证状态与业务索引 | RDS | 支持条件查询与状态更新 |
| 保存完成后的凭证对象 | OSS | 应用通过对象接口管理内容 |
| 共享生成过程的工作文件 | NAS,可选 | 仅当处理工具需要共享文件系统时使用 |
本例采用“索引、最终对象、临时工作区”的分工,并不规定 OSS 一定保存长期数据、NAS 一定保存临时数据。NAS 也能保存持久文件,具体取决于业务模型与保护策略。 官方:OSS、 NAS
处理过程
组件职责
RDS 保存对象索引,OSS 保存对象内容,NAS 提供共享文件访问。应用负责确认内容完整性、发布可查询状态,并在处理失败后执行重试或补偿。
查询应用按照业务授权组织对象访问。具体访问方式根据专有云版本、网络边界和授权方案确定。
运行说明
数据库与对象存储恢复点不一致时,可能出现索引缺失、孤立对象或状态不匹配。恢复验证应覆盖业务记录与文件对象的对应完整性。
4.批量对账与文件处理
场景概述
批量处理通常包括输入接收、完整性校验、明细匹配、差异确认和结果保存。各步骤分别记录处理状态,文件到达状态与批次完成状态独立管理。
参考架构
处理程序运行于 ECS 或 ACK。若多个程序需要共享文件路径,可使用 NAS;结果文件可以由应用保存到 OSS;RDS 记录批次状态与差异处理结果。定时或依赖调度属于可扩展的调度能力,消息通知属于可选异步方式,不因存在这些组件就假定已配置流程编排。
处理状态
| 状态 | 应用需要确认的事 | 失败时如何讲解 |
|---|---|---|
| 等待输入完成 | 文件写入已结束、内容可校验 | 保持等待,不读取半成品 |
| 校验完成 | 格式与业务条件允许进入处理 | 标记失败原因,等待重新输入或纠正 |
| 匹配处理中 | 处理进度已记录,可判断能否重跑 | 从可靠检查点继续,避免重复影响结果 |
| 结果待确认 | 差异已经形成,但尚未完成业务闭环 | 分别记录技术处理状态和业务确认状态 |
| 完成并可查询 | 结果、索引与状态相互对应 | 为后续复查保留必要的处理记录 |
以上状态为通用参考,不包含实际批次名称、时间窗口或处理参数。 官方:文件存储 NAS、 SOFAStack 中间件概述 分别提供文件访问和调度等相关产品背景。
运行说明
批次重跑结果取决于输入版本、处理规则、外部依赖和写入幂等设计。可重跑能力应确保重复执行不会重复累计结果,并保留完整的处理记录。
5.事件采集、运行监测与业务分析
场景概述
应用不断产生访问、处理结果或运行事件。不同任务需要从同一来源中提取不同信息:有的看错误变化,有的看访问趋势,有的生成后续报表。
参考架构
Kafka 组织事件的分区与消费进度;处理程序解释事件内容,执行过滤、关联或统计;结果存储则保存计算结果。选用 Flink 是一种公开技术组合,不表示专有云一定配有该产品。 官方:Kafka 产品介绍、 Kafka 基本概念
处理说明
消息积压与业务延迟。消费滞后会影响分析结果的更新时间。运行监测同时展示消息积压和结果数据时间,用于判断对实时业务的影响。
回放与重复副作用。回放可以重新计算派生结果,但如果每次消费都会调用外部有副作用的接口,就要防止重复执行。处理进度、结果写入和外部动作应分别考虑。
事件记录与事实记录。“处理尝试”事件和“业务成功”记录具有不同语义。趋势分析应明确事件定义、去重口径和结果状态。
运行说明
重置消费进度仅调整事件读取位置。事件仍在保留范围、计算逻辑支持重放且结果端具备幂等处理能力时,方可进行安全补算。
6.场景关系
场景内容以支付完成后生成凭证为主线,依次关联计算、数据库、消息和对象存储。凭证查询关联缓存访问,凭证生成关联文件处理,运行事件关联 Kafka。ODP 作为数据规模增长和分片访问场景的扩展能力。
场景页面应明确每个组件的输入、输出、状态确认位置和异常处理职责,形成从资源承载、数据保存到消息处理的完整说明。