restQL V3 版本發佈:速度比之前提升了一倍

近日,微服務查詢語言restQL發佈了其最新版本V3。該版本提供了很多非常有名的新特性,諸如內容聚合、額外的HTTP方法支持、自我修復功能以及一個Node.js應用程序版本。全面的性能改善也使該版本的速度比之前提升了一倍。從V2到V3也沒有破壞性改動,因此用戶可以安全地升級。restQL作爲開源項目其代碼遵循了MIT許可協議。

RestQL旨在簡化那些需要查詢多個微服務的前端代碼。雖然微服務架構可以使後端系統更容易支持和維護,但這不可避免地會在前端應用程序層增加額外的複雜度。RestQL減少了對多個微服務調用編排的複雜性。因爲它使用了標準的HTTP調用,從而可以有效利用本地瀏覽器的緩存功能。

RestQL的一個顯著特徵就是能自動並行調用分離的資源。但是,每一個響應也將被分開,這就需要客戶端合併相關的對象,比如擁有多個訂單的客戶端。在最新版本中,新的in操作符允許開發人員在查詢中提前指定聚合結構,從而得到一個組合結果。

最新版本也提高了restQL服務器的彈性,該服務器位於客戶端和微服務API之間。當系統檢測到超載時,它就會引入一種反壓力形式。配置文件定義了可接受處理時間開銷的閾值。如果達到該閾值,系統將開始爲某些請求返回HTTP 507響應(存儲空間不足),同時它又允許部分請求繼續成功執行。

這種返回失敗響應的模式要求應用程序具有某種形式的重試機制。RestQL的發明者之一Ricardo Mayerhofer提到過,這種機制一般通過服務網格實現,例如Istio。“我們建議同時使用restQL和服務網格。得益於restQL的HTTP和REST特性,它可以很好地處理服務網格(用於傳入查詢和傳出調用)。因爲自動伸縮算法已經很常見了,所以在新的節點加入後restQL恢復正常只是時間問題。"

RestQL的早期版本只支持通過from關鍵字來查詢數據,該關鍵字最終被轉換爲HTTP的GET請求。V3版本則分別通過關鍵字to、into和delete實現了HTTP的POST、PUT和DELETE,這樣restQL就實現了HTTP的完整CRUD操作。

RestQL的發明者意識到,支持和維護一個額外的服務器可能會成爲人們使用restQL的阻礙,因此他們爲node應用程序創建了一個npm包,@b2wdigital/restQL。其GitHub頁面中包含了代碼實現示例

Mayerhofer在最近的一篇博文中描述了restQL V3的更多特性。InfoQ之前也介紹了該語言的起源和初始版本的發佈

原文鏈接

restQL V3 Released

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章