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

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

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

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

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

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

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

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

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

目录
相关文章
|
4天前
|
网络协议 数据挖掘 5G
适用于金融和交易应用的低延迟网络:技术、架构与应用
适用于金融和交易应用的低延迟网络:技术、架构与应用
26 5
|
1月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
24 9
|
3月前
|
运维 Cloud Native 容灾
核心系统转型问题之单元化架构对于自研可控场景该如何支持
核心系统转型问题之单元化架构对于自研可控场景该如何支持
|
2月前
|
缓存 负载均衡 数据管理
深入探索微服务架构的核心要素与实践策略在当今软件开发领域,微服务架构以其独特的优势和灵活性,已成为众多企业和开发者的首选。本文将深入探讨微服务架构的核心要素,包括服务拆分、通信机制、数据管理等,并结合实际案例分析其在不同场景下的应用策略,旨在为读者提供一套全面、深入的微服务架构实践指南。**
**微服务架构作为软件开发领域的热门话题,正引领着一场技术革新。本文从微服务架构的核心要素出发,详细阐述了服务拆分的原则与方法、通信机制的选择与优化、数据管理的策略与挑战等内容。同时,结合具体案例,分析了微服务架构在不同场景下的应用策略,为读者提供了实用的指导和建议。
|
3月前
|
人工智能 Serverless API
Serverless 架构实现弹幕场景问题之用SAT进行双主键的插入操作如何解决
Serverless 架构实现弹幕场景问题之用SAT进行双主键的插入操作如何解决
34 0
|
3月前
|
NoSQL Serverless 数据库连接
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
Serverless 架构实现弹幕场景问题之initializer方法在执行过程中遇到错误如何解决
36 0
|
3月前
|
存储 Serverless API
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
Serverless 架构实现弹幕场景问题之在initializer方法中初始化数据库实例如何解决
27 0
|
3天前
|
缓存 负载均衡 JavaScript
探索微服务架构下的API网关模式
【10月更文挑战第37天】在微服务架构的海洋中,API网关犹如一座灯塔,指引着服务的航向。它不仅是客户端请求的集散地,更是后端微服务的守门人。本文将深入探讨API网关的设计哲学、核心功能以及它在微服务生态中扮演的角色,同时通过实际代码示例,揭示如何实现一个高效、可靠的API网关。
|
2天前
|
Dubbo Java 应用服务中间件
服务架构的演进:从单体到微服务的探索之旅
随着企业业务的不断拓展和复杂度的提升,对软件系统架构的要求也日益严苛。传统的架构模式在应对现代业务场景时逐渐暴露出诸多局限性,于是服务架构开启了持续演变之路。从单体架构的简易便捷,到分布式架构的模块化解耦,再到微服务架构的精细化管理,企业对技术的选择变得至关重要,尤其是 Spring Cloud 和 Dubbo 等微服务技术的对比和应用,直接影响着项目的成败。 本篇文章会从服务架构的演进开始分析,探索从单体项目到微服务项目的演变过程。然后也会对目前常见的微服务技术进行对比,找到目前市面上所常用的技术给大家进行讲解。
11 1
服务架构的演进:从单体到微服务的探索之旅
|
1天前
|
Cloud Native 安全 API
云原生架构下的微服务治理策略与实践####
—透过云原生的棱镜,探索微服务架构下的挑战与应对之道 本文旨在探讨云原生环境下,微服务架构所面临的关键挑战及有效的治理策略。随着云计算技术的深入发展,越来越多的企业选择采用云原生架构来构建和部署其应用程序,以期获得更高的灵活性、可扩展性和效率。然而,微服务架构的复杂性也带来了服务发现、负载均衡、故障恢复等一系列治理难题。本文将深入分析这些问题,并提出一套基于云原生技术栈的微服务治理框架,包括服务网格的应用、API网关的集成、以及动态配置管理等关键方面,旨在为企业实现高效、稳定的微服务架构提供参考路径。 ####
14 5