• 1、组件引入的业务背景

系统存储的信息需要被很多系统的不同业务场景调用,外围的业务场景需要的返参信息不完全一样,针对业务模块等开发了一些接口,这些接口返回的参数较多,外围根据需要获取需要的返参字段;同时有些外围的返参一些要求或者调用量很大,对性能要求较高的,这部分场景还需要定制专门的接口服务;最终导致需要维护的接口梳理较多,维护成本较高(每个接口都需要维护接口文档、概设详设文档、以及针对每个接口的监控告警等配置…)。

针对上面的背景提出了返参配置化的解决思路,解决的问题

  1. 灵活定制返参字段,减少非必要信息的露出,保护用户隐私;
  2. 减少Redis查询和降低 Redis内存占用,合理使用资源;
  3. 减少字段返回,提升接口查询性能;
  4. 针对场景调用配置化,减少了设计开发工作量,快速交付业务;
  5. 查询提供标准的接口,支持标准组件化能力输出。
  • 2、设计思路

2.1、整体的思路,根据场景编码和场景密钥定制返回字段,基本的流程图如下:

2.2、模型设计

外部场景配置表:定义外部场景编码+密钥与内部场景编码之间的映射关系。外围调用方系统需要传入,外部系统号用于记录和异常日志打印,便于快速定位问题,

Column Name

Simple Name

scene_code

外部场景编码

app_code

外部系统号

scene_secret

场景密钥

inner_code

内部编码

scene_desc

使用场景说明

valid_flag

场景有效标识1:有效 0:无效

内部场景返参字段配置表:定义内部场景编码对应的返参字段列表,使用的是field_key外键,字段命名由返参字段取值规则配置表定义。

Column Name

Simple Name

inner_code

内部场景编码

field_key

返参字段对应的key

返参字段取值规则配置表:定义字段的取值规则

Column Name

Simple Name

field_key

返参字段对应的key

field_name

返参英文名称

field_name_desc

返参中文名称

field_name_detail_desc

返参详细说明

field_type

返参类型

field_val_expression

返参取值表达式

field_val_type

返参表达式类型

data_bean

取值bean

data_bean_param

取值bean中的参数

data_result_condition

当前结果取值的过滤条件

2.3、核心字段设计思路

场景编码+场景秘钥:外围系统调用接口,需要传入场景编码和秘钥,避免系统场景乱用导致不好管理。

返参表达式类型:支持多种字段解析,如:1:SpEL表达式;2:函数表达式组合;3: 自定义组合(对象/列表);4:java类

返参表达式类型:
   1:表达式:单值的简单表达示,例:${userName}
   2:函数表达式组合:单值的函数表达示,函数必须用@开头,例:@Desen.mobileNo(${mobileNo})、@Date(${verifyTs},'yyyy-MM-dd HH:mm:ss') 、@xxUtil.xx(${xx})等
   3:对象函数组合:此类型对应的表达示必须为OBJ、LIST或LIST_STRING开头的,可以自定义扩展。
      OBJ 语法:返回一个对象,对象有多个参数,简化配置默认使用参数作为字段名

例:OBJ| name =${ name }, mobileNo =@Desen.mobileNo (${mobileNo })----简化配置:OBJ|${name},@Desen.mobileNo(${mobileNo })

List语法:返回对象列表,简化配置处理相同

LIST| name =${ name }---简化配置:LIST|${ name }

LIST_STRING语法:返回列表,内部是单值类型String
      LIST_STRING|${ hobby }

 4: 自定义java

2.4、bean对象解析流程图<核心模块>

  • 三、接口流控设计:

  1. 接口支持根据业务场景进行单台应用的QPS流控(分布式流控),避免某个业务场景调用量大导致服务器压力上升,而影响其他核心业务场景的查询性能。流控使用了服务端“业务维度的分布式流控组件设计”
  2. 接口支持到单机房的全局流控配置。

全局流控:单机房有200组jboss,每台应用每秒接收100个请求,单机房全局流控阈值2W,超过200*100=2W个请求会被拒绝(全局QPS使用redis汇总,每台应用有个Step

步长,实际未到2W就可能被拒绝)。

3、RPC接口也支持到单台应用的QPS流控与并发流控

QPS流控:某服务每秒接收100(QPS阈值)个请求,超过100个请求会被拒绝。

并发流控:某服务同时接收100(并发阈值)个请求,超过100个请求会被拒绝。

查询接口返参配置化组件设计(适用定制信息查询)相关推荐

  1. c语言招生信息查询系统,《C语言程序设计》课程设计报-招生信息查询系统.docx...

    <C语言程序设计>课程设计报-招生信息查询系统 课程设计报告题目:招生信息查询系统课程名称:C语言程序设计专业班级:信息安全1302学号:姓名:指导教师:报告日期:2014年9月17日计算 ...

  2. c语言查询课程信息,《C语言程序设计》课程设计报告-招生信息查询系统.docx

    <C语言程序设计>课程设计报告-招生信息查询系统 课 程 设 计 报 告题目: 招生信息查询系统 课程名称: C语言程序设计 专业班级: 信息安全1302 学 号: 姓 名: 指导教师: ...

  3. 淘宝排名查询接口,关键词排名api,淘宝商品排名查询api,淘宝关键词搜索查询接口

    一 .为什么要使用淘宝排名查询 在网店上架一个商品时,商品的标题就尤为的重要.怎样做才能让购买者更容易的搜索的自己的商品,哪些词比较吸引客户,这时你就可以把自己选出来的关键词来查询一下,他在同类目下的 ...

  4. 删除添加修改查询c语言报告,c语言课程设计报告 车辆违章查询系统.pdf

    c语言课程设计报告 车辆违章查询系统 C 语言课程设计 姓 名:刘 风 学 号:8100612 时 间:2011/6/11 指导教师:王 薇 C 语言课程设计 题目:车辆违章查询系统 要求: 能够根据 ...

  5. ICP备案信息查询接口,根据单位名称、域名、备案号查询

    域名ICP备案查询(官方实时) 请求地址 HTTP GET方式 https://api.itapi.cn/api/icp 请求参数 参数名 参数说明 key 用户请求密钥,可在 密钥管理页面 申请 w ...

  6. python编写查询系统_小菜鸟的python学习之路----信息查询系统

    功能说明: (1)用户认证功能,只有输入对的用户名和密码后才能查询 (2)可以查员工的ID,Name,部门,电话 (3)查询的接口关键字是姓名,用户通过姓名来查其他关联相关信息. (4)查完了输出用户 ...

  7. 京东猎户座发布开源,配置化一键生成cms系统

    猎户座核心配置化功能开源啦! 在降本提效的大环境下,猎户座系统为了扩展更多应用场景,近期完成了第一阶段的开源工作.此次开源的代码内容涉及两个代码库,内容为CCMS管理系统核心配置化功能以及包含表格列与 ...

  8. CUBA 使用 Spring 查询接口

    原文链接:https://www.cuba-platform.com/blog/spring-query-interfaces-in-cuba 翻译:CUBA China CUBA-Platform ...

  9. 接入百度智能云的营业执照识别接口、工商信息查询(基础版)接口到实际业务,参考代码

    我的代码放在公共模块如下: 1.根据百度云官方文档-SDK中心,下载sdk对应jar包,我下载下来的版本是bce-java-sdk.0.10.254 2.使用mvn命令手动引入jar mvn inst ...

最新文章

  1. ubuntu nohup php,Ubuntu安装PhpStorm并设置快速启动phpstorm
  2. android drawpath大小,Android Path和PathMeasure
  3. IOS NSArray,NSDictionary
  4. python清理垃圾_用Python自动清理系统垃圾,再也不用360安全卫士了
  5. 【论文写作】毕业论文中容易栽的九个坑
  6. 如何对 Oracle 数据泵(expdp/impdp) 进行 debug
  7. 给DateField和DateChooser进行汉化
  8. 日常搜集的勒索病毒解密工具的汇总
  9. 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
  10. arduino步进电机程序库_Arduino步进电机控制示例
  11. owncloud创建app
  12. 小孟5w接了个盲盒小程序,三周开发完毕
  13. git reset三种模式区别和使用场景(hard,soft,mixed)
  14. 《RAFT-Stereo:Multilevel Recurrent Field Transforms for Stereo Matching》论文笔记
  15. 微信小程序授权订阅消息判断用户取消或允许
  16. 运维学python用不上_作为运维你还在想要不要学Python,看完这篇文章再说!
  17. 厦门信息计算机专业录取分数,厦门大学计算机类专业2016年在福建理科高考录取最低分数线...
  18. Python tkinter Text 多行文本框变化事件
  19. git push提示dst refspec XXX matches more than one
  20. SPU/SKU/商品

热门文章

  1. android 曲线进度条,Android自定义View——使用贝塞尔曲线实现流量进度条
  2. Android自定义动画学习,实现左右摇摆动画
  3. 2018-11-27
  4. a8处理器相当于骁龙几_千元机里的vivo Y3,处理器逊色不少,也有可圈可点的地方...
  5. CSS样式属性参考手册
  6. 淘宝、天猫商品详情最低价skuid爬取、各类sku信息调取
  7. 机器学习 之线性回归、逻辑回归、 SVM支持向量机、随机森林
  8. 交通工程学科点滴丨路线设置与指路标志的关系及其对驾驶任务的影响
  9. 【渝粤题库】陕西师范大学164114 西方经济学 作业(高起专)
  10. 后羿 03 ‖ 逢蒙