標籤:調用 伺服器 任務 使用 微軟雅黑 部分 訊息 分布式緩衝 功能
為滿足效能、擴充性、業務快速交付等方面的要求,新.net core雲開發架構改造的主要思想是:高內聚、低耦合,即進一步實現縱向和橫向分層,提高延展性和可擴充性,實現彈性部署:
- 採用領域驅動設計進行架構橫向分層,同時業務功能縱向分割
- 在代碼和資料庫設計上充分考慮雲架構要素,提高延展性、可擴充性、高效能性和安全性
- 採用諸如分布式緩衝、分布式儲存、並行資料庫、訊息佇列、ESB等多種可伸縮技術實現松耦合
採用上述設計思路後的新架構搭建的綜合業務管理系統如。其中HL、HB等是外部系統,通過ESB與綜合業務管理系統互動。
一、高內聚、低耦合
就是系統的模組內各個元素彼此結合的緊密程度高,但是模組間儘可能獨立存在,這是軟體品質的標準和設計的終極目標之一。高內聚、低耦合的系統更容易擴充,更容易複用,也是雲端運算平台分布式、可向外延展部署的必要條件。
首先,在縱向架構上遵循分層的B/S架構標準,將整個系統劃分為表現層、商務邏輯層、資料訪問層。我採用領域驅動設計方式,在三層基礎上又進行了細分,分為五層,分別為資料持久層、基礎設施層、業務領域層、應用程式層和展示層,其核心是業務領域層,所有商務邏輯應該在領域層實現。
其次,在橫向上進行業務分割,就是將系統功能分割成一個個業務模組。根據業務需求的獨立性將門戶管理、即席查詢、指標報表、背景工作、工作流程表單等業務模組進行分割,並分別部署到不同的計算資源中,模組間通過MQ或者SOA介面相互調用,從而提高系統的並發能力和擴充能力。
*個人認為這是軟體項目的最終品質目標,所以重點提一下
二、領域驅動設計架構
領域驅動設計架構分為五層,分別為資料持久層、基礎設施層、業務領域層、應用程式層和展示層。
其核心是業務領域層,所有商務邏輯應該在領域層實現。
三、資料庫設計
目前資料庫通常使用幾種方式進行最佳化:
- 分庫分表
- 按照業務將大資料庫拆分成更小的資料庫
- 特殊情況下某些訪問量大、資料量大的資料表按照一定邏輯拆分到不同資料庫伺服器中(某些雲已提供分散式資料庫,不需要程式實現)
- 讀寫分離
- 一個可寫的資料庫,其他唯讀資料庫是可寫資料庫的同步鏡像
- 形成當前操作資料和曆史資料兩個部分
四、分布式技術
分布式技術的應用可以促進系統的延展性,更利於雲端部署
- 靜態資源網站
- 雲端儲存
- 分布式緩衝
- 分布式訊息佇列、ESB等互動工具
- 分散式資料庫
*靜態資源網站更像是一個方式,而不是分布式技術。
二、面向雲的.net core開發架構的主要設計思路