構架微服務時各個服務需要遵守的通用規則

微服務中各個服務需要遵守的規則

識別出各個服務需要遵守的通用規則

做取捨時,需要注意一個很重要的因素:系統允許多少可變性。

需要識別出各個服務需要遵守的通用規則,清楚地定義出一個好服務應有的屬性。

「系統應該由很多小的但有自治生命周期的組件構成,而且這些組件之間有著緊密的關聯」。所以在優化單個服務自治性的同時,也要兼顧全局。

各個服務需要遵守的通用規則——監控

健康狀態必須在系統級別而非單個服務級別進行考慮。

建議確保所有的服務使用同樣的方式(標準化)報告健康狀態及其與監控相關的數據。

日誌功能和監控情況類似:也需要集中式管理。

各個服務需要遵守的通用規則——明確介面

選用少數幾種明確的介面技術

  • 關於介面的技術和協議

    Advertisements

  • 介面的具體細節

    如選用了HTTP/REST,規定好URL中使用動詞還是名詞,如何處理資源的分頁,如何處理不同版本的API。

各個服務需要遵守的通用規則——架構安全性

一個運行異常的服務可能會毀了整個系統,所以,必須保證每個服務都可以應對下游服務的錯誤請求。

沒有很好處理下遊錯誤請求的服務越多,系統就會越脆弱。

各個服務需要遵守的通用規則——架構安全性——措施

可以讓每個下游服務使用它們自己的連接池,進一步讓每個服務使用一個斷路器

斷路器依賴的返回碼應該遵守一定的規則。

對以下幾種請求做不同的處理可以幫助系統及時失敗,並且也很容易追溯問題

(1)正常並且被正確處理的請求;(2)錯誤請求,並且服務識別出了它是錯誤的,但什麼也沒做;(3)被訪問的服務宕機了,所以無法判斷請求是否正常。

Advertisements

Advertisements

你可能會喜歡