性能、安全和穩定,袋鼠雲數據服務平臺 DataAPI 為企業 API 保駕護航

来源:https://www.cnblogs.com/DTinsight/archive/2023/09/13/17698934.html
-Advertisement-
Play Games

通過 API 對外提供數據服務是大部分企業中比較常見的數據應用方式,對於 API 平臺管理者、開發者和調用者來說,API 的調用性能、安全性和穩定性是在平臺選型時最需要考慮的三個因素。 袋鼠雲API開發及管理平臺【數棧-數據服務 DataAPI】通過多種手段標準化管控服務,可完成從 API 創建、發 ...


通過 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=szbky

同時,歡迎對大數據開源項目有興趣的同學加入「袋鼠雲開源框架釘釘技術qun」,交流最新開源技術信息,qun號碼:30537511,項目地址:https://github.com/DTStack


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言 裝飾模式,英文名稱:Decorator Pattern。我第一次看到這個名稱想到的是另外一個詞語“裝修”,我就說說我對“裝修”的理解吧,大家一定要看清楚,是“裝修”,不是“裝飾”。在房子裝修的過程中,各種功能可以相互組合,來增加房子的功用。類似的,如果我們在軟體系統中,要給某個類型或者對象增加 ...
  • 以下內容為本人的學習筆記,如需要轉載,請聲明原文鏈接 微信公眾號「ENG八戒」https://mp.weixin.qq.com/s/zy6Dmo_b3xMPPEO3HNxuuw 有一段時間沒碰條件變數【condition variable】,快忘了它到底是啥。大概記得,之前是用來寫底層介面,輔助實現 ...
  • 目錄docker鏡像倉庫hub.docker.com無法訪問-解決辦法1 個人鏡像站點2 dockerhub為什麼無法訪問2.1 查看dockerhub實際IP2.2 ping檢測3 鏡像加速3.1 使用國內鏡像加速3.1.1 docker配置:3.1.2 containerd配置:3.2 使用博主 ...
  • 先執行 free -h 查看現在的swap分配情況 執行 swapon -s 查看swap的分區文件 執行 swapoff /dev/dm-1 取消已經掛上的swap文件 現在擴充swap到4G,並將swap文件掛到/vm_memory/swapfile上 先創建/vm_memory/swapfil ...
  • 1、背景描述 出於安全考慮,需要禁止使用root用戶通過ssh遠程登錄Linux 禁用root用戶遠程登錄後,需要提供一個許可權用戶用於ssh遠程登錄 2、創建擁有sudo許可權的用戶 2.1、創建一個普通用戶rain useradd命令用於創建一個用戶, 選項 -m 表示創建用戶的主目錄, -c 表示 ...
  • 1. 索引 1.1. 鍵(key) 1.2. 存儲引擎用於快速找到記錄的一種數據結構 1.3. 當表中的數據量越來越大時,索引對性能的影響愈發重要 1.4. 在數據量較小且負載較低時,缺少合適的索引對性能的影響可能還不明顯 1.5. 索引優化是對查詢性能優化最有效的手段 1.6. 索引能夠輕易將查詢 ...
  • 本文分享自華為雲社區《GaussDB(DWS)鎖問題全解》,作者: yd_211043076。 一、gaussdb有哪些鎖 1、常規鎖:常規鎖主要用於業務訪問資料庫對象的加鎖,保護併發操作的對象,保持數據一致性;常見的常規鎖有表鎖(relation)和行鎖(tuple)。 表鎖:當對錶進行DDL、D ...
  • Apache SeaTunnel是一個非常易於使用的、超高性能的分散式數據集成平臺,支持海量數據的實時同步。每天可穩定高效同步數百億數據,已被近百家企業投入生產使用。 現在的版本不支持通過jtds的方式鏈接sqlserver,我們來自己寫代碼來實現它,並把代碼提交給apache seatunnel。 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...