网关概述

背景:

公司内部有很多服务,如消费信贷,账户服务,支付服务等,这些服务由公司不同部门或团队维护。如果外部机构想要调用这些接口,需要与不同团队协商接口格式,加解密格式,签名验签格式等调用方式。如果公司有一个统一对外提供服务的网关,统一调用方式,服务调用方和提供方都按照这个标准进行接口调用和开发,就可以避免技术细节的重复讨论,可以专注于业务层面。

概述

统一网关基于spring cloud gateway开发,提供对外访问内部服务的统一入口,调用方通过一系列断言和过滤器,路由到不同的内部应用系统。流程图如下:
image.png

功能:

  • 参数校验:调用方将json格式的请求参数放入request body中,通过http post方式访问统一网关,请求参数需要遵循统一网关的标准,即包含机构号,银行号,api名称,api版本,授权token,防重放nounce,流水号,加密后的业务数据,验签数据等字段。如果有未传入的字段,则认为是非法请求。
  • 监控:经过参数校验后,网关把请求异步放入mq,以便对交易进行统计
  • 防重放:一笔交易经过一系列过滤器可以被转发到后台系统,交易被拦截后被重复发送,如果没有防重放功能,改交易始终会被转发到后台,对业务系统造成损害。因此防重放可避免相同的请求重复发送。
  • token校验:token由机构申请,是机构身份合法性的判断来源,有效期为两个小时,需要定时更新。如果token无效,则认为是该机构非法
  • 黑白名单:判断允许和禁止访问的IP
  • 权限校验:判断该笔交易的机构是否具有访问这个银行的api的权限
  • 加解密:交易的业务数据在发送前进行加密,统一网关解密验签后发送至后台系统,收到后台系统响应后再签名加密返回至调用方
  • 签名验签:加解密是为了防止数据在传输过程中被发现,签名验签是为了防止发现后数据被篡改

网关相关的时间:

  • 交易的时间戳:由客户端自己定义
  • 请求时间:进入gateway的时间
  • 响应时间:gateway响应至客户端的时间

另:

  • gateway发往后台的时间
  • gateway接收后台响应的时间
  • 告警:进入flink的时间

你可能感兴趣的:(gateway网关)