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