
文章插图
作者| 阿里文娱高级开发工程师 天甘 慕理
责编 | 屠敏
头图 | CSDN 下载自东方 IC

文章插图
背景
你一定也深有同感,在开发业务需求时,1/3是时间都花费在了前期准备工作上 。比如,调研数据来自哪里,查看几条真实数据及其结构,然后开始写代码过滤出所需要的数据,并将数据组装成期望的结构……经过漫长的过程后,才能进入正题 。今天我将介绍,如何通过元数据中心,帮你直接提升开发效率 。
什么是元数据中心?它有两个主要作用:沉淀数据源广场、自定义接口 。
1) 数据源广场:通过关键字搜索出基础平台服务相关接口,可手动快速调用查看接口;
2)自定义接口:根据业务自定义所需字段(字段名、类型),元数据中心SDK还将接口调用这一系列逻辑抽象出来,沉淀了“接口调用引擎”,业务开发只需要将平台下发的接口标示传入引擎中,即可完成接口接入,由hardcode转为配置化 。
除以上两点,元数据中心还建立了统一监控、熔断能力,采用多线程池,保证接口调用的效率及稳定性 。

文章插图
架构

文章插图
元数据中心有两个核心模块:1)数据源,对基础平台服务(像需求中的ABCD系统)接口做标准化调用;2)自定义接口,为业务开发做接口编排,包括入参和出参的定义 。
1、数据源
数据源模块是将基础平台服务接口做了标准化调用,与其他平台标准化不同的是,基础平台服务不需要实现JAVA接口,这样降低了基础服务接入 。目前元数据中心暂时支持HTTP及RPC接口,后面我们会逐步支持分布式数据库数据源,分布式缓存数据源及mock数据源 。数据源模块采用以下技术来保证调用的稳定:
- 数据源模块采用多线程池技术,不但可以并发调用,保证接口调用的稳定,还可以根据接口调用情况动态调整所使用的线程池,保证在某个接口性能较差情况下不影响其他接口的调用;
- 使用了泛化调用技术,泛化调用技术避免了引入二方包导致包冲突的问题;
- 数据源模块还支持分批调用,很多诸如queryByIdList这种查询,肯定需要对查询ID做count限制,但是有时候业务所需要的单次查询数多于限制数,那么就需要分批并发调用多次,然后再merge结果;
- 利用ThreadLocal技术元数据中心还支持对接口调用的超时时间做动态的调整,有些业务为了获取到数据可以容忍较长的RT,有些业务对RT比较敏感,所以可以根据业务不同对超时时间做个性化设置 。
1)Schema的定义
通常在业务开发时,接口主要解决两件事:1)对接底层的数据源,2)用几个数据源的结果组合成一个业务接口暴露给上层的业务 。因此,在设计Schema时考虑了以上两点,将Schema分为调用和返回,根据不同的需求配置调用哪些数据源,并配置这些数据源的依赖关系,并且配置接口需要以什么样的方式返回,可直接透出数据源的返回结果,对结果进行简单维护,也可以自己定义结果,并指定取值的来源,对结果的类型和结构进行控制和干预 。
2)Schema执行引擎
- 第一:简述执行过程
- 第二:如何解决数据源依赖
推荐阅读
- 揭秘阿里巴巴的客群画像
- 教教你普洱茶级别鉴赏,特级普洱茶
- 皮肤护理基本步骤 教你正确皮肤护理步骤
- 教你如何挑选汝窑茶具,专家教您如何挑选茶具
- 教你自制水果茶,玫瑰水果茶的做法
- 教你用10行Python 代码实现自动化群控
- 觉农舜毫的栽培技术,教你几招冷藏后的茶叶如何提香
- 手机视频如何添加文字?原来这么简单,手把手教你一分钟搞定
- 抢鲜!阿里架构师私藏并发编程笔记,公开前半段秒获8K标星
- AI人工智能:JAVA教你拍照识别文字 并语音播报
