性能、安全和稳定,袋鼠云数据服务平台 DataAPI 为企业 API 保驾护航

news2024/11/22 11:38:38

通过 API 对外提供数据服务是大部分企业中比较常见的数据应用方式,对于 API 平台管理者、开发者和调用者来说,API 的调用性能、安全性和稳定性是在平台选型时最需要考虑的三个因素。

袋鼠云API开发及管理平台【数栈-数据服务 DataAPI】通过多种手段标准化管控服务,可完成从 API 创建、发布、申请/审批、调用的全生命周期管控,至今已经服务于300+客户。本文将为大家分享 DataAPI 是如何实现这三方面保障的。

DataAPI 的调用性能

在数据库和网络状况良好的情况下,DataAPI 目前的 API 调用性能在 5k QPS 时单次调用耗时最小可在 30-80ms 内。近期平台不仅从多个后端调用链路环节做了优化,也在产品层支持了一系列的功能,通过性能可观测、可配置等方式进行了全面的性能提升。

调用结果缓存

API 支持开启数据缓存,可选择用 HBase/Redis 存储缓存结果,在缓存失效策略上,DataAPI 采用 LFU(最不经常使用页置换算法),根据数据更新频率可自定义缓存清理周期与时间。

file

针对源数据更新频率不高,且存在多次相同输入参数重复查询的情况,开启缓存可缩短调用链路,显著降低调用耗时。

服务编排

复杂查询逻辑的实现可用带 Java/Python 函数的服务编排代替 SQL 来完成,以提升查询效率。

file

入参格式校验

对于一些有明显格式规则的输入参数,例如手机号、身份证号等,入参内容如果不满足相应格式要求则会导致一定无法正确返回结果。

因此我们可以为高并发 API 的这些参数配置正则校验规则,在数据库执行查询语句前由 Gateway 先进行内容校验,若不满足格式要求则直接返回查询失败,减少无效查询。

file

调用链路耗时分析

创建 API 的测试调用环节,可通过调用分析查看 API 调用过程所经过的环节、执行内容,以及每条执行内容的耗时瀑布图,用户可直观地看到性能损耗的关键点,以便快速调整。

例如 Server 端的数据解密、行级权限等校验耗时整体明显增加时,可能是 Server 资源到了瓶颈,可进一步排查 Server 端的负载;数据源查询耗时增加则可能是当前数据源查询并发变高。

file

DataAPI 的安全性

安全层面,DataAPI 从开发及调用两个层面进行了全方位的保障。

开发安全

● 服务分组

重要 API 在发生逻辑变更时,可以通过服务分组来测试新逻辑的可靠性,通过类似 AB测试的方式将可控比例范围内的流量导向新逻辑,出现问题时立即调整分流比例切换回原逻辑,能够在用户无感知的情况下最大程度降低对业务侧的影响。

file

● 角色权限管理

平台内置多个固定角色,区分了 API 查看、开发、申请调用权限、管理等功能的场景,能满足90%的用户需求。另外管理员可根据企业内部权限管控要求调整固定角色权限点或者新增自定义角色,灵活把控用户权限配置。

file

● 测试/生产项目隔离

对于 API 开发投产安全性要求一般的场景,流程一般是 API 创建-提交网关测试-发布,发布后可直接生产调用。如果企业内部对开发和生产环境进行了严格隔离,也可在开发环境完成开发测试后,通过绑定项目一键发布或导出导入式发布复制到生产环境。这种方式进一步规范了生产 API 的变更流程,减少了误操作发生率。

file

调用安全

● 调用申请审批

DataAPI 租户层的 API 市场汇集了各个项目发布的 API,实现 API 一定范围内的共享时也对 API 调用做了权限管控,用户在申请 API 调用权限时可控制其调用次数、周期及字段粒度的输出参数访问。对于某用户已经获得审批通过的 API,管理员也可在到期前进行权限回收。权限申请与审批操作方便、管理粒度细、灵活度高。

file

● 2种调用权限认证方式

· API-TOKEN / USER-TOKEN:每个用户的单个 API 一个 TOKEN / 每个用户的所有 API 一个 TOKEN,用户对某个 API 的调用权限申请通过时平台会提供 TOKEN 信息, TOKEN+API URL 即可正常调用 API,适用于对调用安全要求一般的场景

· AK/SK:通过密钥和加密签名的方式对 API 的调用进行认证,安全性保障更好

● 数据传输加密

· RSA+AES:支持对大量数据加解密的同时,保证了加解密速度,应用于一些对于用户个人信息或其他敏感信息加密的安全性要求较高的场景

· SM2+AES:SM2 在安全、速度等方面较 RSA 更优,可按企业内部要求选择数据传输加密方式

● 行级数据权限控制

用户可在数据源层面配置用户数据访问行粒度的权限,然后将这个权限控制应用到指定的 API,实现更精细化的权限管控。

file

● 异常调用的服务熔断

针对一些高并发调用的 API 可以配置熔断策略,当单位时长的异常调用达到一定的次数等条件时,为保证 API 整体服务不瘫痪,DataAPI 会对该 API 从 Gateway 处开启一定时长的熔断,经过熔断时长后探测服务健康状态并进行自动恢复。

file

● IP 地址安全组

IP 地址安全组中可划分 IP 黑名单与白名单,对于有调用 IP 约束的 API,确保不会在非法 IP 中被调用。

DataAPI 的稳定性

DataAPI 的部署包含2台web、2台Server 及2台Gateway(每台默认16c32g),版本升级可通过数栈自带的运维升级工具 EasyManager 实现快速平滑升级。当业务增长时,通过简单增加 Server 和 Gateway 部署台数即可稳定支持更高的调用并发。

DataAPI 的后续规划

接下来的日子 DataAPI 将继续深耕性能与安全层的优化,为企业业务提供更加稳定、高效且安全的支持。下面是我们的主要规划:

· 调用性能:全链路性能优化、数据库资源组划分保障重要业务调用

· 调用安全:数据输出动态脱敏,保护敏感信息

《数栈产品白皮书》:https://www.dtstack.com/resources/1004?src=szsm

《数据治理行业实践白皮书》下载地址:https://www.dtstack.com/resources/1001?src=szsm

想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=szcsdn

同时,欢迎对大数据开源项目有兴趣的同学加入我们,一起交流最新开源技术信息,号码:30537511,项目地址:https://github.com/DTStack

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1006492.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx代理socket链接集群后,频繁断开重连

一、场景 nginx使用集群模式代理多个socket链接,socket链接频繁断开重连 二、具体表现如下 三、nginx代理配置 ## socket集群 upstream test_socket {server 192.168.1.233:9901;server 192.168.1.243:9901; }server {listen 8600;server_name localhost;l…

51单片机智能小车—PWM方式实现小车调速和转向

目录 1. 让小车动起来 2. 串口控制小车方向 3. 如何进行小车PWM调速 4. PWM方式实现小车转向 1. 让小车动起来 电机模块开发 L9110s概述 接通VCC,GND 模块电源指示灯亮, 以下资料来源官方,具体根据实际调试 IA1输入高电平&#xff0c…

小红书《乡村振兴战略下传统村落文化旅游设计》中南大博士许少辉八一新著

小红书《乡村振兴战略下传统村落文化旅游设计》中南大博士许少辉八一新著

使用伏格尔法解决运输问题

物流和供应链管理是当前管理研究的热点和前沿领域。供应链是一个由物流系统和该供应链中的所有单个组织或企业相关活动组成的网络。为满足供应链中顾客需求,需要对商品服务及相关信息,从产地到消费地高效率低成本地流动及储存进行规划、执行和控制。运筹…

基础秘钥、公钥、地址的熟悉指南

1. 地址 0基础漫画式阅读:https://www.cnblogs.com/charlesblc/p/6130433.html 清晰详细的地址生成解释:比特币:账户私钥、公钥、地址的生成 - kumata - 博客园 (cnblogs.com) 对原理更详细解释:区块链技术核心篇之二&#xff…

计算机竞赛 大数据房价预测分析与可视

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据房价预测分析与可视 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:4分 该项目较为新颖,适合…

java复习-线程常用操作方法

线程常用操作方法 线程的主要方法都定义在 Thread类 之中,因此此处就是学习Thread中的方法。 一. 线程的命名与取得 构造方法:public Thread(Runnable target, String name)设置名字:public final synchronized void setName(String name)…

解决“您在 /var/spool/mail/root 中有新邮件”问题

一、发现问题 二、解决问题 1、删除邮件 cat /dev/null > /var/spool/mail/root 2、禁止系统启动邮件检查 echo "unset MAILCHECK" >> /etc/profile 三、解决结果

16G FC SFP+ SW光模块应用解析

随着云计算、大数据和物联网等技术的迅猛发展,数据传输速率不断提高。传统的铜缆传输面临带宽瓶颈和信号衰减等问题,而光纤传输凭借其高带宽、低损耗等优势成为了现代通信的主要选择。易天光通信的16G SFP SW 多模光模块作为高性能光纤传输设备&#xff…

SAP HANA 体系结构,LandScape,规模调整:完整教程

目录 一、SAP HANA 体系结构 二、SAP HANA 景观 三、SAP HANA 大小调整 SAP HANA 数据库是以主内存为中心的数据管理平台。 SAP HANA 数据库在 SUSE Linux Enterprises Server 上运行,并基于 C 语言构建。 SAP HANA 数据库可以分发到多台计算机。 SAP HANA 的优…

上海亚商投顾:三大指数小幅下跌 光刻机概念股午后走强

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日小幅调整,创业板指走势较弱。减肥药概念股继续大涨,常山药业2连板&#x…

CDH 集群离线部署、大数据组件安装与扩容详细步骤(cdh-6.3.1)

一、环境准备 1、服务器配置和角色规划 IP 地址主机名硬件配置操作系统安装步骤10.168.168.1cm-server8C16GCentos7新建10.168.168.2agent018C16GCentos7新建10.168.168.3agent028C16GCentos7新建10.168.168.4agent038C16GCentos7新建10.168.168.5agent048C16GCentos7扩容 2…

Harmonic Drive哈默纳科减速机旋转方向和减速比

Harmonic Drive哈默纳科减速机是一款广泛应用于工业生产中的机械设备,通过减速旋转运动来降低机器的转速和输出功率,从而实现精准的调节和控制。哈默纳科减速机的结构紧凑,体积小,重量轻,安装方便,维护简单…

深入了解 FastAPI 鉴权:掌握前后端身份验证的最佳实践

在构建现代化的 Web 应用程序时,用户身份验证和授权是不可或缺的组成部分。FastAPI 提供了多种方法来实现鉴权,以确保只有授权用户可以访问特定的资源或执行特定的操作。本文将介绍 FastAPI 中的鉴权方法,包括基本概念、实践案例和一些提示和…

企业如何转动自己的命运齿轮,实现数字化转型

企业进行数字化转型,需要熟悉数字化转型相关知识,了解众多前辈企业数字化转型成功或失败的案例,从中提炼出数字化转型的关键要点,在数字化转型的浪潮中,破浪前行。 数字化转型关键因素 1、数据 数据是数字化转型的基…

zeppelin安装python(使用pymysql包)

zeppelin安装python: zeppelin的测试环境安装的python的pymysql包 更改zeppelin的python的interpreters(注意需要匹配跟我们的python版本相匹配) 参考官网链接:https://zeppelin.apache.org/docs/0.10.1/interpreter/python.htm…

开源软件镜像平台-山东大学镜像站

山东大学镜像站 山东大学镜像站是由山东大学(青岛)网管会镜像站学生运营团队运营的开源镜像站平台,网站平台专门为技术爱好者、工程师、科研人员等开源爱好者提供给丰富的开源镜软件像资源,以及相关的学习和帮助资料,…

简单聊聊G1垃圾回收算法整个流程 --- 理论篇 -- 上

简单聊聊G1垃圾回收算法整个流程 --- 理论篇 -- 上 G1 是什么为什么需要 G1 G1 GC 流程并发标记根对象枚举安全点 位图标记整体流程初始标记阶段并发标记阶段三色标记法SATB(原始快照)SATB 专用写屏障优化SATB 专用写屏障和多线程执行 最终标记存活对象计数收尾工作转移效率总结…

Python实现自主售卖机

1 问题 在python中我们常常使用到条件判断,if语句时常见的条件判断语句之一。那么如何使用if语句实现根据情况自动选择商品进行售卖呢? 2 方法 根据if语句执行时从上往下执行的特点,使用if语句、dict和list来实现整个流程。 代码清单 1 drink…