在上一篇《微服務架構設計模式》讀書筆記(一):逃離單體地獄》中我們對比了單體架構和微服務架構的優缺點,已經實施微服務的組織和流程條件,同時也給出了微服務的概括性定義:把應用程序功能性分解為一組服務的架構風格。在本篇中,我們将繼續深入微服務架構設計。
軟件架構的重要性軟件架構定義
計算機系統的軟件架構是構建這個系統所需要的一組結構,包括軟件元素、它們之間的關系以及兩者的屬性。
——《Documenting Software Architectures: Views and Beyond》
軟件的架構是一種抽象的架構,由軟件的各個組成部分和這些部分之間的依賴關系構成。
軟件需求可以分為兩類:
功能需求:決定軟件可以做什麼
非功能需求:非功能需求也稱為質量需求或者能力,包含開發階段的質量、後續的可維護性、可測試性、可擴展性、可以部署性等質量屬性
以上描述其實和《從零開始學架構》讀書筆記(一):概念與基礎中講述的軟件架構的定義(頂層結構)和解決複雜性(為了實現高性能、高可用、可擴展、安全等)的理解很類似。
架構的重要性在于:決定應用程序的質量屬性。
架構的4 1視圖模型
邏輯視圖:開發人員創建的軟件元素及關系
實現視圖:編譯構建系統的輸出,模塊、組件及關系
進程視圖:運行時的組件及關系
部署視圖:進程如何映射到機器,由機器、進程及關系構成
分層式架構分層式架構将軟件運算按“層”的方式組織,每層都有明确定義的職責,每層隻能依賴緊鄰的下層。
可以将分層架構應用于前面所述四種視圖中任何一種,流行的三層架構是應用于邏輯視圖的MVC架構:
其弊端是:
六邊形架構是分層架構風格的替代品 [解決分層架構的弊端],六邊形架構選擇以業務邏輯為中心的方式組織邏輯視圖。
業務邏輯周圍是适配器,有兩種适配器:
好處:
微服務架構是一種把應用程序功能性分解為一組服務的架構風格。
服務是一個單一的、可獨立部署的軟件組件,它實現了一些有用的功能。
微服務架構把應用程序通過一些小的、松耦合的服務組織在一起,能提升開發、測試、維護、部署的效率,讓組織的軟件開發速度更快,同時提升可擴展性。
總結更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!