数据服务 开源方案技术选型

一、数据服务简介

笔者认为数据中台应该具备以下能力:

  1. 获取数据
  2. 处理数据
  3. 分享数据
  4. 展示数据

数据服务对应的是分享数据的能力。

数据服务的能力体现为,通过配置的而不是编码的方式将已有数据发布成接口,供数据需求者调用。

为什么要用数据服务?
为了减少开发周期,提升开发效率。

二、开源方案介绍

介绍不分先后,只是简单介绍

1 Rocket-API

Rocket-API 基于spring boot 的API敏捷开发框架,服务端50%以上的功能只需要写SQL或者 mongodb原始执行脚本就能完成开发,另外30%也在不停的完善公共组件,比如文件上传,下载,导出,预览,分页等等通过一二行代码也能完成开发,剩下的20%也能依赖于动态编译技术生成class的形式,不需要发布部署,不需要重启来实现研发团队的快速编码,提测以及回归。

开源公司:
无公司,个人开源

项目地址:
https://gitee.com/alenfive/rocket-api#https://graphql.cn/

2 Magic-API

magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Dao、Mapper、XML、VO等Java对象即可完成常见的HTTP API接口开发

开源公司:
无公司,个人开源

项目地址:
https://gitee.com/ssssssss-team/magic-api

3 Dataway

Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。这种内嵌集成方式模式的优点是,可以使得大部分老项目都可以在无侵入的情况下直接应用 Dataway。进而改进老项目的迭代效率,大大减少企业项目研发成本。

开源公司:
新东方

项目地址:
https://github.com/ClouGence/hasor.git

4 APIjson

提供通用接口,大部分API不用再写自动生成文档,不用再编写和维护自动管理权限和版本、自动防SQL注入开放API无需划分版本,始终保持兼容支持增删改查、模糊搜索、正则匹配等。

开源公司:
腾讯

项目地址:
https://gitee.com/Tencent/APIJSON

5 Graphql

GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时。 GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它需要的数据,而且没有任何冗余,也让 API 更容易地随着时间推移而演进,还能用于构建强大的开发者工具。

开源公司:
Facebook

项目地址:
https://github.com/graphql

三、详细对比

详细对比各开源项目的各种维度,如果项目既发布在github又发布在gitee,则选择数值更优秀的。

涉及到打分的满分10分,分数较为主观,仅供参考。

对比项Rocket-APIMagic-APIDatawayAPIjsonGraphql
第一个稳定版发布时间2020-06-162021-03-282015-07-032017-04-302015-10
仓库 watch/star/fork109/827/224134/750/23963/777/225363/11.2k/1.4k538/13.3k/1.1k/
开发语言Java/JavaScriptJava/VueJava/VueJavaTypeScript/JavaScript
文档完善度77388
易用度87595
使用场景替代CRUD,减少开发成本替代CRUD,减少开发成本场景和Graphql相同apijson的定位是解决小公司、团队及个人开发者产品快速上线,在这里忽略了后端,只需要后端按照设计要求建立相关对象之后,前端就可以直接通过apijson这里的规范直接调用。有多个接口需要查询有可能有交集也有可能没有交集的数据时,后端只需要一个API可以查询到数据全集,Graphql可以自动完成数据解析,封装,过滤操作。从而实现两个接口的需求 。
是否需要写后端代码truetruetruefalsetrue

四、推荐度

推荐度,排名从高到低。

根据以下维度:文档、是否简单、是否需要编码、开发语言是否适合我司、是否是大厂

  1. APIjson
    理由:1 文档完善 2 大厂背书 3 无需编码 4 语言适合我司,二次开发方便 5 使用简便
  2. Rocket-API
    理由:1 文档完善 2 编码较少 3 使用较为简便 4 语言适合我司,二次开发方便
  3. Magic-API
    理由:1 文档较为完善 2 编码较少 3 使用较为简便 4 语言适合我司,二次开发方便
  4. Dataway
    理由:1 文档较为完善 2 场景不适合
  5. Graphql
    理由:1 文档完善 2 大厂背书 3 场景不合适

这里的排名是根据需求定的,不同的项目需求场景不同,排名仅供参考!

PS:有误之处,请不吝赐教!

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Kubernetes是一个开源的容器编排平台,已经成为了企业级容器化应用的首选平台。在选择企业级Kubernetes平台时,需要考虑以下几个方面: 1. 功能完备性:企业级Kubernetes平台应该具备所有基本的Kubernetes功能,如容器编排、服务发现、负载均衡、自动伸缩等。同时,还需要支持高可用和容错机制,以确保应用的稳定性。 2. 安全性:企业级Kubernetes平台需要具备安全性,包括网络隔离、访问控制、认证和授权等。此外,还需要支持敏感数据的加密和存储。 3. 可扩展性:企业级Kubernetes平台需要支持高度可扩展性,以满足企业级应用的需求。这包括水平扩展和垂直扩展等。 4. 管理性:企业级Kubernetes平台需要具备易管理性,包括自动化部署、自动化升级、监控和日志管理等。此外,还需要支持多租户和多集群管理。 5. 社区支持:企业级Kubernetes平台需要具备广泛的社区支持,包括开发者社区和厂商社区。这将有助于解决问题和提供支持。 在选择企业级Kubernetes平台时,可以考虑以下几个技术选型: 1. Kubernetes发行版:Kubernetes发行版提供了一整套企业级Kubernetes平台,如Red Hat OpenShift、Google Kubernetes Engine、VMware Tanzu等。 2. 基础设施:企业级Kubernetes平台需要运行在可靠的基础设施上,如公有云、私有云或物理服务器等。 3. 存储:企业级Kubernetes平台需要支持多种存储方案,如云存储、本地存储、网络存储等。 4. 网络:企业级Kubernetes平台需要支持多种网络方案,如服务网格、虚拟私有网络、负载均衡等。 5. 安全性:企业级Kubernetes平台需要支持多种安全方案,如网络隔离、认证和授权、加密和存储等。 综上,对于企业级Kubernetes平台的选型,需要综合考虑平台功能、安全性、可扩展性、管理性和社区支持等方面,并根据具体需求选择合适的技术选型
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值