SOA分佈式架構設計
文件狀態: [√] 草稿 [ ] 正式發佈 [ ] 正在修改 |
申明: |
此文章爲原創文章,只供交流,轉載請註明出處謝謝o(∩_∩)o |
當前版本: |
V1.0 |
|
作 者: |
吳蔣 |
|
完成日期: |
2012-2-28 |
目錄
0.1 文檔目的... 4
0.2 文檔範圍... 4
0.3 讀者對象... 4
0.4 參考文獻... 4
0.5 術語與縮寫解釋... 4
1. 系統概述... 5
2. 設計約束... 5
3. 設計策略... 5
4. 設計詳細... 5
5. 設計對應項目的解決方案描述... 8
6. 開發環境的配置... 9
7. 運行環境的配置... 10
8. 測試環境的配置... 10
9. 其他... 10
0. 文檔介紹
0.1 文檔目的
本文檔表述了平臺SOA的分佈式架構設計,並通過使用多種視圖以及模擬項目運營中所需要的解決流量,資源負載的各個主要方面的解決方案,以滿足系統的開發需求和文檔備案。本文檔記錄並表述了系統架構的設計人員對系統架構方面做出的重要決策。
開發人員將根據架構定義的構件制定項目的開發過程。另外本文檔還使用於指導各構件的實施、集成及測試。
0.2 文檔範圍
本軟件架構說明文檔適合總體應用架構。
0.3 讀者對象
本文檔的預期閱讀人員爲項目經理、程序設計人員、測試人員和其他有關的工作人員。
0.4 參考文獻
無
0.5 術語與縮寫解釋
縮寫、術語 |
解 釋 |
SOA |
服務 |
js |
javascript |
WCF |
Windows communication fundation |
1. 系統概述
本文檔主要說明項目在分佈式中的處理解決方案,以及數據庫以及文檔的存儲問題。
2. 設計約束
本文並未涉及到具體的代碼實現,所以並無設計約束,如有特殊文內標識。
3. 設計策略
1.設計在大流量的時候的分佈式處理
2.保全訪問數據的同步性和完成性
3.保全在分佈式通信中的安全性
4. 設計詳細
由於分佈式架構比較抽象所以使用圖文加說明的形式來闡述設計,首先看網絡架構設計總圖4-1-1:
圖 4-1-1 網絡分佈式部署概要圖
以下對上圖進行說明,使架構有一個總體的瞭解。此文段後會對上圖的每個部分進行拆分,並進行具體的部署說明以及在運行和軟件編程方面進行可行性解決方案說明。本文將整個部署分爲服務器調用端(如WEB、手機調用服務端、平板調用服務端等等)、SOA端(提供SOA服務給服務器調用端使用,主要基於SOAP的工業標準,實現跨平臺使用)、數據庫羣集(數據庫以及系統級配置文件的存放)、以及服務總線集羣(服務總線是處理分佈式調配以及處理特殊緩存的服務、以及上傳資源的存放)4大塊。
現在來模擬流程:
Step1: 服務調用端啓動情景
一、 數據庫端部署完成,正常啓動。
二、 SOA端部署完成,正常啓動,從數據庫集羣獲取SOA端和數據庫集羣的配置文
件並緩存(比如查詢當前的SOA服務器對應的數據庫提供的表的IP地址),正常提供服務。
三、 服務總線部署完成,正常啓動,從數據庫集羣獲取服務調用端的配置文件並進
行緩存,總線服務正常提供。
四、 服務調用端項目第一次啓動:
- 發送啓動信息至服務總線,通知服務總線本服務端需要提供服務。
- 服務總線接受到該請求後獲取發送端(服務調用端)的IP地址、以及域名、以及使用權限(即付費提供服務功能),於在服務總線啓動時從數據庫獲取的配置數據進行匹對驗證、判定並返回給服務調用端信息(包括是否可訪問SOA端,如果驗證合法記錄日誌以及返回被調配到的SOA端的地址,供其調用以此來解決SOA端的負載均衡)。
Step2: 服務調用端啓動之後情景
一、 客戶端在服務調用端進行操作。
二、 服務調用端根據第一次從服務總線分配的SOA的IP進行對服務的調用和通信。
(對於服務的部署和開發使用WCF框架來解決,發佈地址例如爲http://www.XXX.com/adminservice.SVC的服務提供調用)。
下圖4-1-2 是對到此端訪問情景的畫述:
圖4-1-2 服務調用端調用SOA段概述圖
三、 接下來表述SOA服務端和數據庫的分佈式處理。
分佈式數據庫的分佈方式主要是以根據表的操作頻率和訪問流量來處理分
(例如:資訊表的訪問流量非常的大就讓這張表分離出來放在一臺服務器上進行單獨處理,再如若還無法處理流暢運行就進行讀寫分離處理,辦法可查閱http://www.cnblogs.com/daizhj/archive/2010/06/21/dbsnap_master_slave_database.html)。
具體流程見下圖:
圖 4-1-3 SOA端調用數據庫流程圖
可以看到在SOA端第一次啓動的時候,會向系統配置數據庫獲取所有的對應當前SOA服務端IP地址對應的數據庫表分佈地址緩存在內存中,之後每次的調用數據庫表的操作都將通過這些配置的信息獲取操作對象。
5. 設計對應項目的解決方案描述
l SOA服務端
以下是SOA服務端在程序中的主要結構圖:
圖:5-1-1
其中的.svc是服務文件就是我們對外開放的服務。以下是部署在192.168.0.71上的服務截,當然還可以部署到更多的服務器上實現分佈式。圖爲開發服務情況以及調用的方法示例,該服務是以soap進行通訊的。
圖:5-1-2
注意事項:在SOA服務端將不存放太多的緩存,只在Application_Start時候緩存一下數據庫表分佈配置的數據,以及允許訪問的IP以及權限,系統級配置數據。
l 服務總線
以下是服務總線在程序中的主要結構圖:
Upload文件夾用以同步用戶上傳的文件,路徑爲Upload->1->img
6. 開發環境的配置
類別 |
標準配置 |
最低配置 |
計算機硬件 |
||
軟件 |
||
網絡通信 |
||
其他 |
7. 運行環境的配置
類別 |
標準配置 |
最低配置 |
計算機硬件 |
||
軟件 |
||
網絡通信 |
||
其他 |