金融场景下商户回调通知架构思考

简介: 在金融场景API接口,大家都会看到一个特殊的字段,叫做notifyUrl,商户或用户回调链接,这个notifyUrl用户接受异步支付状态应答,在各种支付场景中非常重要的。下面我们就讲下支付公司如何去设计这个notifyUrl来保证请求必然到达的。

首先,我们来看下,通常在支付形态的API接口中,使用都是Https协议+RSA证书体系,来完成整个交易的安全,那么这个notifyUrl必然也是这个协议和安全体系之下的。

其次,notifyUrl通常情况下由商户或用户提供,并且在支付接口的传入。那么问题来了,回调接口对于提供接口的一方是不可控制的,这些回调的接口的质量参差不齐,来源请求非常多,各自还需要做相互不影响,并发量跟正向支付请求同等量可能还要超过。

接下来我们来考虑如何设计一个回调请求notiflyUrl的中间件,来方便支付场景中非常重要的一环。

整个系统分为核心处理和商户回调请求业务管控。

核心处理:
代理接收层:主要使用同步EDAS RPC通讯框架,业务系统通过将需要回调的请求发送过来。再通过深度业务路由决策,分发到同步请求处理层或异步请求处理层。
同步请求处理层:处理即时回调的场景,如:扫码、网银等。
异步请求处理层:处理批量回调的场景,如:代扣、代发、充值等
补偿重试处理层:上面两类请求在指定重试范围内,通知失败,进入补偿重试。

业务管控:
回调商户黑白名单、URL管控、证书管控、路由计算、控台重发等。

整体架构图如下:
商户通知系统.png
总结:
为了保证性能和优先URL通知到达,采用了先请求URL,再落库的方式(前提业务能自主补偿)。
通过同步和异步两层设计,异步中再采用队列分散型设计,再通过精准的路由策略计算,达到商户或更细粒度的业务操作维度的通知相互不影响。
发送者上面需要考虑Https协议支持,标准TLS1.0~1.2或更高,加密通讯算法上也需要更多支撑,JDK安全限制需要考虑。
外网出口再采用两类方式,一类专线管控类,通过正向代理统一出口(适合银行类通知),一类直接外网请求。

目录
相关文章
|
8天前
|
弹性计算 安全 Serverless
图像处理场景下的Serverless架构
【4月更文挑战第15天】图像处理场景下的Serverless架构
|
1月前
|
消息中间件 存储 Cloud Native
深度剖析 RocketMQ 5.0,架构解析:云原生架构如何支撑多元化场景?
了解 RocketMQ 5.0 的核心概念和架构概览;然后我们会从集群角度出发,从宏观视角学习 RocketMQ 的管控链路、数据链路、客户端和服务端如何交互;学习 RocketMQ 如何实现数据的存储,数据的高可用,如何利用云原生存储进一步提升竞争力。
140055 2
|
6月前
|
运维 Java Serverless
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
深度解析四大主流软件架构模型:单体架构、分布式应用、微服务与Serverless的优缺点及场景应用
427 0
|
3月前
|
弹性计算 缓存 并行计算
带你读《弹性计算技术指导及场景应用》——3. Ada Lovelace架构解读及RTX 4090性能测试分析(1)
带你读《弹性计算技术指导及场景应用》——3. Ada Lovelace架构解读及RTX 4090性能测试分析(1)
|
3月前
|
弹性计算 人工智能 并行计算
带你读《弹性计算技术指导及场景应用》——3. Ada Lovelace架构解读及RTX 4090性能测试分析(2)
带你读《弹性计算技术指导及场景应用》——3. Ada Lovelace架构解读及RTX 4090性能测试分析(2)
|
4月前
|
容灾 关系型数据库 分布式数据库
|
7月前
|
存储 Kubernetes 调度
云原生场景下高可用架构的最佳实践
云原生场景下高可用架构的最佳实践
137921 0
|
5天前
|
敏捷开发 监控 数据管理
构建高效微服务架构的五大关键策略
【4月更文挑战第20天】在当今软件开发领域,微服务架构已经成为一种流行的设计模式,它允许开发团队以灵活、可扩展的方式构建应用程序。本文将探讨构建高效微服务架构的五大关键策略,包括服务划分、通信机制、数据管理、安全性考虑以及监控与日志。这些策略对于确保系统的可靠性、可维护性和性能至关重要。
|
18天前
|
API 数据库 开发者
构建高效可靠的微服务架构:后端开发的新范式
【4月更文挑战第8天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构面临着可扩展性、维护性和敏捷性的挑战。为了解决这些问题,微服务架构应运而生,并迅速成为后端开发领域的一股清流。本文将深入探讨微服务架构的设计原则、实施策略及其带来的优势与挑战,为后端开发者提供一种全新视角,以实现更加灵活、高效和稳定的系统构建。
23 0
|
6天前
|
消息中间件 监控 持续交付
构建高效微服务架构:后端开发的进阶之路
【4月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用已难以满足快速迭代和灵活部署的需求。微服务架构作为一种新兴的分布式系统设计方式,以其独立部署、易于扩展和维护的特点,成为解决这一问题的关键。本文将深入探讨微服务的核心概念、设计原则以及在后端开发实践中如何构建一个高效的微服务架构。我们将从服务划分、通信机制、数据一致性、服务发现与注册等方面入手,提供一系列实用的策略和建议,帮助开发者优化后端系统的性能和可维护性。