當前位置:
首頁 > 知識 > 使用 GraphQL 作為 API 網關來監控微服務

使用 GraphQL 作為 API 網關來監控微服務

導讀:在問題導致關鍵的微服務癱瘓之前,使用 GraphQL 的監控功能幫助你及早發現問題。         

本文字數:2123,閱讀時長大約:3分鐘

https://linux.cn/article-12588-1.html

作者:Rigin Oommen

譯者:geekpi

微服務和GraphQL就像麵包和黃油一樣,是一個很好的組合。它們本身都很棒,結合起來就更棒了。了解你的微服務的健康狀況是很重要的,因為它們運行著重要的服務。如果等到某個關鍵的服務崩潰了才診斷問題,那是很愚蠢的。讓 GraphQL 幫助你及早發現問題並不需要花費太多精力。

GraphQL in Microservices

常規的健康檢查可以讓你觀察和測試你的服務,在問題影響到你的業務、客戶或項目之前,儘早得到通知。說起來很簡單,但健康檢查到底要做什麼呢?

以下是我在設計服務檢查時考慮的因素:

伺服器健康檢查的要求:

1. 我需要了解我的微服務的可用性狀態。

2. 我希望能夠管理伺服器的負載。

3. 我希望對我的微服務進行端到端(e2e)測試。

4. 我應該能夠預測中斷。

Service health in microservices

做伺服器健康檢查的方法

進行健康檢查可能比較棘手,因為理論上,你可以檢查的東西幾乎是無窮無盡的。我喜歡從小處著手,運行最基本的測試:ping 測試。這只是測試運行應用的伺服器是否可用。然後,我加強測試以評估特定問題,思考伺服器中最重要的元素。我想到那些如果突然消失的話將是災難性的事情。

1. **Ping 檢查:**Ping 是最簡單的監控類型。它只是檢查你的應用是否在線。

2. **腳本化瀏覽器:**腳本化瀏覽器比較高級。像Selenium這樣的瀏覽器自動化工具可以讓你實現自定義的監控規則集。

3. **API 測試:**API 測試用於監控 API 端點。這是 ping 檢查模型的高級版本,你可以根據 API 響應來定義監控計劃。

使用 GraphQL 進行健康檢查

在一個典型的基於 REST 的微服務中,你需要從頭開始構建健康檢查功能。這是一個時間密集型的過程,但使用 GraphQL 就不用擔心了。

根據它的網站稱:

「GraphQL 是一種用於 API 的查詢語言,也是一種用現有數據完成這些查詢的運行時環境。GraphQL 為你的 API 中的數據提供了一個完整的、可理解的描述,讓客戶有能力精確地僅查詢他們所需要的東西,讓 API 更容易隨著時間的推移而進化,並實現強大的開發者工具。」

當你啟動一個 GraphQL 微服務時,你還可以獲得監控微服務的運行狀況的供給。這是一個隱藏的寶貝。

正如我上面提到的,你可以用 GraphQL 端點執行 API 測試以及 ping 檢查。

Apollo GraphQL 伺服器提供了一個默認的端點,它可以返回有關你的微服務和伺服器健康的信息。它不是很複雜:如果伺服器正在運行,它就會返回狀態碼 200。

默認端點是?。

Health Check with GraphQL

高級健康檢查

在某些情況下,基本的健康檢查可能不足以確保系統的完整性。例如,緊密耦合的系統需要更多的業務邏輯來確保系統的健康。

Apollo GraphQL 在定義伺服器的同時,通過聲明一個??函數來有效地管理這種情況。

當你定義一個??方法時,它返回一個 promise,如果伺服器準備好了,它就會返回?,如果有錯誤,它就會返回?。

GraphQL 讓監控 API 變得更容易。此外,在你的伺服器基礎架構中使用它可以使代碼變得可擴展。如果你想嘗試採用 GraphQL 作為你的新基礎設施定義,請參見我的 GitHub 倉庫中的示例代碼和配置。

via:https://opensource.com/article/20/8/microservices-graphql

作者:Rigin Oommen選題:lujun9972譯者:geekpi校對:wxy

本文由LCTT原創編譯,Linux中國榮譽推出

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 Linux中國 的精彩文章:

新聞拍一拍#ARM 公司新的處理器使驅動器既能存儲也能處理數據