• 极光笔记|数据服务平台一期建设


    背景
    极光目前业务线较多,各个业务线都有数据服务API的开发需求,过去公司没有统一的数据服务总线,导致数据源重复开发、数据应用API重复开发现象较多,资源浪费严重,数据服务平台主要旨在:
    提供统一的对内对外的数据API接口,规范数据服务API的开发与管理
    结合数据地图,打通数据应用和数据工程,实现数据价值和链路血缘的补充
    一、极光数据服务平台介绍
    极光数据服务平台提供将数据表生成API的能力,支持可视化向导模式或脚本模式快速开发API接口,支持关系型数据库和NoSQL数据库,可供内部和外部系统通过调用API接口获取数据,对开放的API进行统一管理和发布。

    【核心功能】:
    【可视化API开发】提供可视化开发API功能,即可快速配置一个API,提高交付效率
    【可视化API调试】提供最基本的可视化的API调试功能,减少测试成本
    【统一的API管理】提供统一的各业务线对内对外的API管理功能
    【API监控告警】提供接口调用统计可视化报表、监控、告警等功能
    【API市场】平台配置的API统一发布到API市场,各业务的数据开发/产品经理们可查看API市场发布的API是否可为自身业务创造价值,可根据业务需要申请使用

    【使用对象】:
    数据开发:配置数据源、配置API接口,用于产品接口/业务接口快速开发
    数据服务平台开发:管理业务接口、管理数据源、平台稳定性保障
    产品运营:业务接口监控、产品接口使用情况数据分析

    1.1 使用流程
    API发布者流程:

    图1-1-1
    API使用者流程:

    图1-1-2
    1.2 数据源管理
    数据服务平台提供数据源管理功能,数据开发工程将开发好的数据表登记到此平台,业务部门只能管理各自的数据源。

    图1-2-1
    一期数据源只支持pika和redis组件,后续会支持更多存储组件(hbase/mysql/es等)
    1.3 API开发
    有了数据源后,业务开发就可以基于该数据源配置API接口入参和出参等信息,快速生成和发布API,提高业务交付效率。

    图1-3-1
    通过数据服务开发的API,能规范API接口定义,统一管理各业务线的API接口。
    1.4 API调试
    配置API完成后,就进入到API调式阶段,在这里业务开发可以输入请求参数的值进行调用,查看请求详情和返回内容,验证API接口入参与出参是否符合预期。

    图1-4-1
    1.5 API发布
    API调试通过后,就可以发布API,这里需要走工单审批,审批通过后,会自动发布的API网关。
    1.6 API网关
    作为数据服务API网关,必须具备身份认证、权限验证、限频限流等功能。
    身份认证:为了解决接口安全问题,会为每个产品线分配一对devKey和devSecret,API接口在调用时,需要带上devKey和签名信息才能访问。
    权限验证:对于每个已发布的API,都要经过API负责人授权才能访问。
    限频限流:API负责人在发布API时,可以设置接口的QPS和QPD,超过设定的阈值,就会限制接口的访问。
    1.7 API市场
    API发布成功后,会上架到API市场,业务开发可以在API市场搜索和查看已经上架的API接口的入参、出参、错误码、发布者等信息,还能申请某些API的权限,审批通过后就可以直接调用该API接口获取数据。

    图1-7-1

    图1-7-2
    1.8 服务概览
    平台具备服务概览功能,包含已发布的API数量、未发布API数量、调用API成功次数、调用API失败次数、错误码分布等统计功能,以及查看编辑且未发布(草稿状态)的API列表。

    图1-8-1
    二、极光数据服务平台架构设计

    2.1 产品架构图

    图2-1-1
    数据服务平台从产品层面,主要分为四层:
    1、应用层:业务根据需求可以申请调用某些API获取数据 。
    2、功能层:平台提供从API创建->API调试->API发布->API监控等功能。
    3、支撑层:支撑平台使用的一些基础功能,包括:用户管理、角色管理、日志管理、工单审批等功能。
    4、数据源层:数据存储组件,包括:pika、redis、hbase、mysql、es等。

    2.2 技术架构图

    图2-2-1
    数据服务平台主要分为两部分:
    【管理端】:
    管理端主要提供给业务开发使用,通过管理端,业务开发能够快速完成配置数据源 ->开发API -> 发布API等操作。
    【服务端】:
    服务端提供对内或对外API接口访问,这里又分为三层:
    网关层:API调用入口,主要负责认证、权限、API路由、限频、限流等工作。
    接口层:提供API接口查询服务,根据API信息组装参数和返回查询结果。
    数据访问层:该层提供访问业务数据存储组件。
    2.3 整体交互图

    图2-3-1
    API发布者通过管理端生成并发布API后,API接口元数据信息(数据源、入参、出参、QPS、QPD等信息)会被存放到redis,供认证中心、网关、可配置服务使用。
    2.4 可配置化接口服务
    在数据服务平台一期建设中,提供基于pika和redis可配置化(NoSQL API)接口能力,其数据源是通过jcache代理层连接pika和redis,业务数据 以KV方式存储,可按照简单的key-value对外提供服务,把key作为入参,value作为出参来抽象对外提供的API接口。
    可配置化接口服务对外提供一个抽象接口,在本抽象接口中按照接口id获取接口的元数据信息(数据源、入参、出参等),再按照接口元数据信息创建数据源连接,生成存储key,获取value值,最后封装出参返回。

    图2-4-1
    用户身份认证、api调用权限认证、限流等前置逻辑都通过后,进行api转发。在数据服务平台创建发布的任意路径api(Jcache可配置接口),经过网关都会转发到可配置接口服务的抽象api中。

    三、后续规划
    虽然一期功能已经上线,但只能满足部分业务需求,还有很多功能需要完善和开发,以下是二期功能:
    数据源支持更多存储组件,如:hbase、mysql、es、hive等
    增加配置API的前置处理和后置处理能力
    实现API服务编排功能,支持服务串行、并行、分支等能力
    增加API接口的弹性伸缩和资源隔离功能
    增加注册API功能,业务可以将现有的API注册到数据服务平台
    在一期产品功能基础上,结合业务需求,完善平台功能

    极光,最专业的消息推送服务平台
  • 相关阅读:
    OCP 062【中文】考试题库(cuug内部资料)第13题
    OCP 062【中文】考试题库(cuug内部资料)第12题
    560. 和为K的子数组 力扣(中等) 字节面试题,不会,前缀和,hash,有尺取法的味道
    863. 二叉树中所有距离为 K 的结点 力扣(中等) bfs
    671. 二叉树中第二小的节点 力扣(简单) auto循环set
    1713. 得到子序列的最少操作次数 力扣(困难) 最长公共子序列->最长上升子序列 lower(vector) 得迭代器
    47. 全排列 II 力扣(中等) 手写练习
    328. 奇偶链表 力扣(中等) 链表练习
    21. 合并两个有序链表 力扣(简单) 链表练习
    1743. 从相邻元素对还原数组 力扣(中等) 需要思考但可以做,hash
  • 原文地址:https://www.cnblogs.com/jpush88/p/15736524.html
Copyright © 2020-2023  润新知