域间治理方案及规范设计
域间治理方案及规范设计
域间治理方案整体说明
-
域间调用通过服务码、场景码的方式进行,协议默认为HTTP(S)
-
域间调用通过消费关系控制不同系统对场景的访问权限
-
设定跨域管控级别,通过管控级别确定不同场景下对于消费关系的认证要求
-
强管控
- 跨系统调用均需要校验消费关系
- 同系统调用不校验消费关系
-
弱管控
- 跨域调用需要校验消费关系
- 同业务域调用不校验消费关系
-
无管控
- 不校验消费关系
-
-
调用方式有两种:直接调用以及系统网关转发
-
设定网络管控级别,通过管控级别确定使用直接调用或者是系统网关转发方式发起调用
-
强管控
- 跨系统调用需要经过系统网关转发
- 系统内直接调用
-
弱管控
- 同业务域内直接调用
- 跨业务域调用需要经过系统网关转发
-
-
springcloud-asgf以及系统网关均需要实现跨域访问
- springcloud-asgf:消费关系校验、转发本系统网关、直接调用
- 系统网关:消费关系校验、转发目标系统网关、调用本系统微服务
-
直接调用时,消费方场景属性中获取真实的服务名以及url,并填充域间治理元数据即可发送请求到提供方,由提供方根据请求来源进行场景校验以及消费关系校验等操作。
-
非直接调用时,由提供方对应的系统网关实现消费关系校验以及调用真实后端服务
规范定义
调用元数据
对外访问路径
http(s)://online/服务码/场景码
内部元数据
通过header传输
-
X-ASGF-Gateway-ServiceCode:服务码(开发者传入。必须) -
X-ASGF-Gateway-ScenarioCode:场景码(开发者传入。必须) -
X-ASGF-Gateway-ScenarioVersion:场景版本(默认1.0) -
X-ASGF-Gateway-SystemCode:场景所属系统码(来源场景属性。必须) -
X-ASGF-Gateway-From:请求来源(sgw,microservice) -
X-ASGF-Source-Namespace:请求方系统名(必须) -
X-ASGF-Source-Service:请求方服务名(必须)
治理配置
场景基础属性
以场景为粒度保存
0000NEFS---scenarioinfo:
scenarios:
A0110001_A03_1.0:
systemCode: '应用所属系统码'
description: '场景属性' #场景的中文描述,描述场景的业务能力
realPath: '实际的api'
realServiceName: '注册中心注册的服务名'
updateTime: '2023-10-12 14:05:21'
createTime: '2023-10-12 10:55:21'
场景访问时间控制
以系统为粒度保存
0000NEFS---scenarioaccess:
scenarios:
A0110001_A03_1.0:
enabled: true # 场景是否可用
accessCtl:
- 'type=simple&expression=00:00-16:00'
updateTime: '2023-10-12 14:05:21'
createTime: '2023-10-12 10:55:21'
场景消费关系
以系统为粒度保存
0000NEFS---scenariorelation:
scenarios:
A0110001_A03_1.0:
relation:
- 'systemcode=消费方系统码&enabled=true'
updateTime: '2023-10-12 14:05:21'
createTime: '2023-10-12 10:55:21'
系统属性
7700NNS---system:
7700NNS:
createTime: '2024-08-19 16:54:59'
dataZone: B1:AZ1,B2:AZ1
enabled: true
systemCode: 7700NNS
systemName: 武汉农村商业银行网银系统
unitizationEnabled: true
accessControllLevel: high # high,low,none
networkControllLevel: high # high,low,none
systemGateway: 7700NNS_SGW #由开发者自定义网关应用名
updateTime: '2024-12-26 18:11:08'