开放平台技术需求
2021-01-24 00:28:31 9 举报
AI智能生成
开放平台技术需求点
作者其他创作
大纲/内容
监控通知
MQ接收告警信息并通过模板发送
API门户<br>
说明:提供给合作方开发者的门户网站
产品中心
文档中心
开发工具
demo
sdk
沙箱环境
用户管理
登录
API监控
安全设置
数据查询
运维支撑
说明:对接运维资源
系统硬件资源监控和告警
业务链路追踪
业务日志搜索
业务监控和告警
测试支撑
说明:对接公司的测试资源
内部接口文档
使用yapi接口文档工具
开源的接口管理平台
接口分组、权限管理
多种接口发布方式
支持 postman, har, swagger 数据导入
idea插件发布接口
基于javadoc解析发布接口
在线接口调试类似于postman
测试用例持久化
接口开发调试
测试自动化
性能测试
灰度测试
技术规范
基础开发依赖
spring-cloud-dependencies 2.2.5<br>
spring-cloud-alibaba-dependencies 2.2.3<br>
注册中心
eureka<br>
网关
spring-cloud-starter-gateway 2.2.5
spring-cloud-starter-alibaba-sentinel 2.2.3
服务调用
spring-cloud-starter-openfeign 2.2.5<br>
spring-cloud-starter-netflix-ribbon 2.2.5<br>
数据操作
JDBC
druid-spring-boot-starter 1.2.1<br>
ORM
pagehelper-spring-boot-starter 1.3.0
分库分表、数据加密
sharding-jdbc 4.1.1<br>
缓存
spring-boot-starter-data-redis 2.2.5<br>
jetcache-starter-redis 2.6.0<br>
消息中间件
spring-cloud-starter-stream-rocketmq 2.2.3
分布式事务
日志
logback 1.2.3
工具包
hutool 5.5.1
管理系统
Ant Design Vue
kalvan-admin
kalvan-gen
开发工具
IDEA
MAVEN
分布式运维工具
分布式日志ELK
分布式链路追踪SkyWalking
分布式应用监控告警Grafana+Prometheus
业务支撑服务
外部API网关<br>
说明:提供给外部合作方接入的接口网关通过nginx负载提供公网服务
接口标准<br>
https post提交
公共报文域
appId
为接入方分配的唯一开放平台ID<br>
data
json格式业务请求数据
sign
对data json数据明文签名<br>
msgId
消息报文Id由接入方传入唯一方便查找日志<br>
业务报文体
根据具体业务接口定义的参数json对象通过data域提交
数据安全
RSA密钥
接入方一对RSA密钥
私钥由接入方保管,公钥上传到平台
平台固定一对RSA密钥
私钥由平台方自己保管,公钥提供给接入方
数据加密
使用aes对称加密
接入方使用平台公钥加密key
平台使用平台私钥解密key
数据签名
接入方使用私钥对明文数据data签名
平台使用接入方上传的公钥对签名进行验证
数据字典
统一请求参数命名
如表示银行信息统一使用bank_开头
bank_account_name
bank_account_no
bank_type
bank_name
统一返回码
API统一转换内部码包装返回<br>
建议用英文简写
如账号不存在ACCT_NOT_EXISTS
流量控制<br>
系统总流量控制<br>
按场景进行流量控制<br>
按appId请求资源进行流量控制<br>
流量动态监控和动态配置
资源集群流量控制
服务降级<br>
服务熔断<br>
依赖服务<br>
Sentinel<br>
阿里开源分布式系统的流量防卫组件<br>
工作原理:每次资源调用都会创建一个 Entry 对象和一系列功能插槽
NodeSelectorSlot资源路径收集和存储
StatisticSlot统计实时信息
FlowSlot根据预设的限流规则和动态规则来做限流
DegradeSlot根据统计信息以及预设的规则来做熔断降级
AuthoritySlot根据配置的黑白名单和调用来源信息来做黑白名单控制
SystemSlot系统负载保护
提供控制台可视化
配置数据持久化扩展Apollo
监控数据持久化扩展(秒级数据默认保留5分钟)
集群流控<br>
redis<br>
限流当不使用sentinel时可选
身份鉴定
分配appId<br>
rsa密钥签名认证<br>
ip绑定<br>
域名绑定<br>
依赖服务<br>
安全控制服务<br>
加解密服务
本地缓存
MQ接收消息-缓存更新
权限控制<br>
全局接口控制<br>
调用方接口控制<br>
依赖服务<br>
安全控制服务<br>
本地缓存
MQ接收消息-缓存更新
服务调用<br>
负载均衡<br>
Feign默认集成了Ribbon负载均衡
默认是轮循
自定义负载均衡算法
通过自定义负载均衡算法实现
规则
ip
appId
version
管理配置
服务节点指定规则调用
服务mock
API实时计算
调用统计定时异步推送<br>
(调用方、调用接口、调用次数、成功率、失败率、限流阻断次数)
数据模型日志埋点
借助ELK来运算展示监控图片实现告警<br>
API编程式监控告警
通过MQ推送监控消息
依赖服务<br>
MQ消息推送统计数据
ES日志存储
SDK支持
配置测试白名单自动加密、签名
提供各环境各语言的本地调用函数库
加解密服务
报文加解密服务
RSA验签签名验签服务
密钥缓存、更新
内部API网关<br>
说明:提供给内部其它系统接入的接口网关通过nginx负载提供内网服务,只做基本控制和透传
流量控制<br>
系统总流量控制<br>
按场景进行流量控制<br>
按appId请求资源进行流量控制<br>
流量动态监控和动态配置
服务降级<br>
服务熔断<br>
依赖服务<br>
Sentinel<br>
redis<br>
身份鉴定<br>
分配appid<br>
ip绑定<br>
域名绑定
依赖服务<br>
安全控制服务<br>
本地缓存<br>
MQ接收消息-缓存更新
权限控制<br>
全局服务控制<br>
调用方服务控制<br>
依赖服务<br>
安全控制服务<br>
本地缓存<br>
MQ接收消息-缓存更新
服务调用<br>
负载均衡<br>
Feign默认集成了Ribbon负载均衡
默认是轮循
灰度流量<br>
通过自定义负载均衡算法实现
规则
ip
appId
version
管理配置
服务节点指定规则调用
服务Mock
只能用于开发测试环境<br> 定义发布接口就可以调试<br> 模拟一些外部没有测试环境的服务结果
动态路由<br>
动态发布接口<br>
动态删除接口
路由参数配置
依赖服务<br>
安全控制服务<br>
MQ接收消息-缓存更新
API实时计算
调用统计定时异步推送<br>
(调用方、调用接口、调用次数、成功率、失败率)
数据模型日志埋点
借助ELK来运算展示监控图片实现告警<br>
API编程式监控告警
通过MQ推送监控消息
依赖服务<br>
MQ消息推送统计数据
ES日志存储
服务控制模块
获取合作方密钥服务
绑定ip和域名认证服务
外部网关接口权限配置
开通接口
接口资源限制
内部网关接口权限检查
开通接口
接口资源限制
获取mock配置
获取灰度规则<br>
接口调用监控数据记录<br>
API管理
系统管理
管理员管理
角色管理
菜单管理
菜单权限管理
数据字典管理
操作日志管理
网关管理<br>
外部网关安全认证配置
外部合作方配置
IP域名绑定
密钥管理
MQ数据推送(多节点)
外部网关接口权限配置
接口资源分配
接口发布
MQ数据推送(多节点)
内部网关安全认证配置
内部APP配置
IP绑定
密钥管理
MQ数据推送(多节点)
内部网关接口权限配置
接口资源分配
MQ数据推送(多节点)
内部网关路由管理
动态配置
动态发布
MQ数据推送(多节点)
API发布
上线、下线
状态管理
MQ数据推送(多节点)
灰度规则配置
mock映射配置
API统计分析
数据展示
MQ接收消息对APi分析数据入库
0 条评论
下一页