蚂蚁国际环境下的超网详解

2024-01-29 06:40

本文主要是介绍蚂蚁国际环境下的超网详解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 超网是什么

超网就是国际域内各业务线与外部通信时的网关。对于AC来说,无论是接收来自站点的请求,还是发送请求到站点,都需要经过超网。超网一般使用HTTP协议与站点进行通信,在通信过程中会对发送或接收到的请求或响应进行加签或验签、报文字段映射、错误码映射等处理。

2. 超网的功能及处理过程

超网主要实现三个功能:通信+路由转发+加验签

连接对象:国际域内各业务线与外部(收单或发卡)通信

处理过程:使用HTTP协议与站点进行通信,在通信过程中会对发送或接收到的请求或响应进行加签或验签、报文字段映射、错误码映射等处理。

站点请求AC时:

ⅰ. 站点发送HTTP请求至超网
ⅱ. 超网转换为TR调用至GN
ⅲ. GN给超网返回TR调用结果
ⅳ. 超网返回HTTP响应至站点

AC请求站点时:

ⅰ. GN发起TR调用超网
ⅱ. 超网转换为HTTP请求发送至站点
ⅲ. 站点返回HTTP响应至超网
ⅳ. 超网给GN返回TR调用结果

3. 新老超网模型

3.1 老超网

模型:

在这里插入图片描述

相关定义:

• outTransCode:接收点或者发送点(或称通信点)
• transType:将两个outTransCode连接起来的通道,两点对应唯一一条通道
• channelSystem:渠道(可以是某个站点,也可以是ipay某个业务线)
从图中可以看出,渠道和通信点之间一对多,复杂度过高
将两个通信点之间放大:
在这里插入图片描述
老超网使用两个名为parser和assemble的脚本进行报文解析
• Parser:用来将外部发给超网的报文解析为通用报文对象(写法虽不难,但过于冗长,且无法复用)
• assemble:用来将通用报文对象组装对外报文(写法困难,不常用)

老超网问题:

• 脚本过于冗长(一条sql里放置近千行脚本语句)且无法复用;
• 自由度过高,中台失去管控。

3.2 新超网

模型:

在这里插入图片描述

相关定义:

• 接口开放:对应为老超网的transType
• 接口实例:接口定义+通信点
• 接口定义模型取代了老超网parser与assemble脚本的作用,使超网可以出入报文进行管控

解决方案:

• 新路由规则(补偿规则)以clientId(integrationId)、function、version为主键,保证了所有规则互不冲突,配置新规则一定不会影响到老规则,有效解决只能串行配置路由规则影响项目并发联调的问题。
• iopengw会先根据老的路由规则决策路由地址,若没有老的路由规则,则会使用新路由规则进行决策
• 目前仅使用补偿规则即可满足业务线的需求,保留路由规则为将来可能出现的特殊需求提供灵活度。

特别注意:

• GN新标准接口已全部使用补偿规则进行路由,若再配置路由规则,则会导致补偿规则失效。所以后续GN的新标准接口禁止配置路由规则,全部使用补偿规则进行配置,具体配置方法可参考:https://yuque.antfin-inc.com/docs/share/13b6714d-8bbe-4baf-a8e2-ac60aaf63936?#。

这篇关于蚂蚁国际环境下的超网详解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656059

相关文章

Flutter监听当前页面可见与隐藏状态的代码详解

《Flutter监听当前页面可见与隐藏状态的代码详解》文章介绍了如何在Flutter中使用路由观察者来监听应用进入前台或后台状态以及页面的显示和隐藏,并通过代码示例讲解的非常详细,需要的朋友可以参考下... flutter 可以监听 app 进入前台还是后台状态,也可以监听当http://www.cppcn

C++ Primer 标准库vector示例详解

《C++Primer标准库vector示例详解》该文章主要介绍了C++标准库中的vector类型,包括其定义、初始化、成员函数以及常见操作,文章详细解释了如何使用vector来存储和操作对象集合,... 目录3.3标准库Vector定义和初始化vector对象通列表初始化vector对象创建指定数量的元素值

MyBatis与其使用方法示例详解

《MyBatis与其使用方法示例详解》MyBatis是一个支持自定义SQL的持久层框架,通过XML文件实现SQL配置和数据映射,简化了JDBC代码的编写,本文给大家介绍MyBatis与其使用方法讲解,... 目录ORM缺优分析MyBATisMyBatis的工作流程MyBatis的基本使用环境准备MyBati

Nginx中location实现多条件匹配的方法详解

《Nginx中location实现多条件匹配的方法详解》在Nginx中,location指令用于匹配请求的URI,虽然location本身是基于单一匹配规则的,但可以通过多种方式实现多个条件的匹配逻辑... 目录1. 概述2. 实现多条件匹配的方式2.1 使用多个 location 块2.2 使用正则表达式

spring @EventListener 事件与监听的示例详解

《spring@EventListener事件与监听的示例详解》本文介绍了自定义Spring事件和监听器的方法,包括如何发布事件、监听事件以及如何处理异步事件,通过示例代码和日志,展示了事件的顺序... 目录1、自定义Application Event2、自定义监听3、测试4、源代码5、其他5.1 顺序执行

Java之并行流(Parallel Stream)使用详解

《Java之并行流(ParallelStream)使用详解》Java并行流(ParallelStream)通过多线程并行处理集合数据,利用Fork/Join框架加速计算,适用于大规模数据集和计算密集... 目录Java并行流(Parallel Stream)1. 核心概念与原理2. 创建并行流的方式3. 适

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

linux本机进程间通信之UDS详解

《linux本机进程间通信之UDS详解》文章介绍了Unix域套接字(UDS)的使用方法,这是一种在同一台主机上不同进程间通信的方式,UDS支持三种套接字类型:SOCK_STREAM、SOCK_DGRA... 目录基础概念本机进程间通信socket实现AF_INET数据收发示意图AF_Unix数据收发流程图A

Go 1.23中Timer无buffer的实现方式详解

《Go1.23中Timer无buffer的实现方式详解》在Go1.23中,Timer的实现通常是通过time包提供的time.Timer类型来实现的,本文主要介绍了Go1.23中Timer无buff... 目录Timer 的基本实现无缓冲区的实现自定义无缓冲 Timer 实现更复杂的 Timer 实现总结在

linux环境openssl、openssh升级流程

《linux环境openssl、openssh升级流程》该文章详细介绍了在Ubuntu22.04系统上升级OpenSSL和OpenSSH的方法,首先,升级OpenSSL的步骤包括下载最新版本、安装编译... 目录一.升级openssl1.官网下载最新版openssl2.安装编译环境3.下载后解压安装4.备份