微服務設計模式 - 概述



微服務是一種基於服務的應用程式開發方法。在這種方法中,大型應用程式將被分解成最小的獨立服務單元。微服務是透過將整個應用程式劃分為相互連線的服務集合來實現面向服務架構 (SOA) 的過程,其中每個服務只服務於一個業務需求。

走向微服務的概念

在面向服務的架構中,整個軟體包將被細分為小型、相互連線的業務單元。這些小型業務單元將使用不同的協議相互通訊,從而為客戶提供成功的業務。現在問題是,微服務架構 (MSA) 與 SOA 有何不同?簡單來說,SOA 是一種設計模式,而微服務是實現 SOA 的一種實現方法,或者可以說微服務是一種 SOA。

以下是我們在開發面向微服務的應用程式時需要牢記的一些規則。

  • 獨立性 - 每個微服務都應該能夠獨立部署。

  • 耦合性 - 所有微服務都應該鬆散耦合,這樣在一個微服務中的更改不會影響其他微服務。

  • 業務目標 - 整個應用程式的每個服務單元都應該是最小的,並且能夠實現一個特定的業務目標。

為了應用這些原則,必須處理某些挑戰和問題。微服務設計模式討論了這些常見問題,並提供了相應的解決方案。在接下來的部分中,我們將討論這些問題以及使用適用設計模式的解決方案。

與微服務相關的設計模式分為五大類。

  • 分解設計模式 - 將應用程式分解成更小的微服務。分解設計模式提供瞭如何以邏輯方式進行分解的見解。

  • 整合設計模式 - 整合設計模式處理應用程式的整體行為。例如,如何透過單個呼叫獲得多個服務的返回結果等。

  • 資料庫設計模式 - 資料庫設計模式處理如何為微服務定義資料庫架構,例如每個服務是否應該擁有單獨的資料庫或使用共享資料庫等。

  • 可觀測性設計模式 - 可觀測性設計模式考慮日誌記錄、效能指標等的跟蹤。

  • 橫切關注點設計模式 - 橫切關注點設計模式處理服務發現、外部配置、部署方案等。

廣告