您好,登錄后才能下訂單哦!
一、背景&問題
之前框架是一個基于SOA思想設計的分布式框架。各應用通過服務方式提供使用,服務之間通信是RPC方式調用,具體實現基于.NET的WCF通信平臺。框架存在如下2個問題:
1、高并發處理能力不足。一當高并發請求,可能出現多個服務待定處理,導致整個系統出現瓶頸。
2、隨著移動端廣泛應用,服務不能靈活支持APP應用。
3、系統持續集成部署過于繁瑣,遇到問題不好定位。
基于以上存在問題升級框架,結合當前主流的架構思想,將系統進行服務化思維,就是“微服務架構”。
二、微服務架構
微服務架構(Microservices Architecture)是將系統拆分為多個服務,俗稱為應用服務。應用服務實現單一、具體的業務應用功能,支持獨立部署維護,多個應用服務構建成系統。應用服務之間通過輕量級通信框架進行,并且支持應用服務用不同技術或者平臺實現。微服務架構是SOA架構設計思想另一種實現方式。微服務架構有如下特點:
1、微服務架構好處
(1)橫向擴展應用服務提升系統并發處理能力
(2)應用服務獨立部署維護,有利于迭×××發升級持續部署
(3)架構靈活支持多種技術實現
(4)有利于應用服務實現高可用性
2、微服務架構不足
(1)對系統設計有一定要求,尤其是拆分技術應用服務接口
(2)導致系統實現復雜度的提高
(3)需要確保系統數據一致性機制
(4)導致系統維護要求和成本提高
系統是否需要采用微服務架構進行構建是由項目需求決定。采用微服務架構進行設計構建系統,對團隊成員能力比傳統要求高,尤其是設計能力。
三、框架設計原則
1、可擴展:支持不修改系統功能,按需擴展服務器資源。
2、高可用:支持分布式部署雙機熱備機制,滿足系統高可用性的要求。
3、高并發:支持快捷擴張應用服務處理能力,提升系統處理能力,滿足并發請求。
4、安全性:訪問安全通過統一認證訪問;信息安全通過加解密、簽名傳輸;網絡安全通過網絡隔離及防火墻;數據安全通過定時備份及高容錯能力。
5、一致性:采用數據最終一致性策略。
四、框架總體設計
圖1- 系統架構示意圖
如圖所示,系統架構基于SOA架構設計思想,并且采用微服務架構方式進行設計和構建。將系統呈現和數據進行分離。系統呈現基于網頁進行實現,支持多種前端UI框架整合及自定義開發;數據由應用服務提供,統一通過“網關API”提供使用。架構支持通過網絡層、應用層的負載均衡中間件等,實現高可用和并發處理能力。架構將一些基礎公共功能抽離構建成中間件。
1、網關API:應用服務通過網關API統一對外提供服務。網關API基于http協議、以restful方式提供統一服務接口,約定接口通信協議,支持系統呈現的功能,以輕量級的通信方式,滿足不同客戶端。網關API實現統一數據訪問權限控制、路由應用服務、限流等功能。
2、消息平臺:負責應用服務之間更新同步信息,將原有系統架構分布式事務調用更新信息的方式,調整為通過消息異步發布/訂閱處理,保證數據最終一致性,應用服務之間降低耦合度和強依賴關系。高并發能力下,取得緩存作用。
3、服務注冊監控中心:負責應用服務注冊發布登記,同時監控應用服務接口運行情況,支持動態控制應用服務接收請求,實現“去中心化”服務控制。組件實現服務注冊登記、監控等功能。
4、認證中心:負責架構訪問統一身份認證。通過用戶口令和權限進行控制訪問。結合“網關API”實現安全訪問、限流等功能,同時實現頁面管理功能。
5、日志管理系統:負責記錄系統日志,提供服務接口和組件,業務代碼通過異步方式將日志信息傳輸到“消息平臺”,日志管理系統訂閱“消息平臺”的日志信息進行處理存儲。同時提供日志管理功能
6、緩存中心:基于Redis分布式內存數據庫,搭建架構統一緩存中心,提供統一緩存服務。
五、軟件架構設計
![](https://s1.51cto.com/images/blog/201809/16/c14c421330ee943366926a7f34eb9129.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
圖2- 軟件架構示意圖
如圖所示,系統架構以微服務架構方式進行開發,從切面觀察每個應用服務進行垂直獨立開發,根據職責劃分層次,從上而下分為四個層次,分別為Web層、服務接口層、業務邏輯層及數據訪問層。Web層主要負責系統功能呈現表達,直接面對用戶;服務接口層主要負責提供標準化服務接口,與呈現層對接;業務邏輯層主要實現應用業務邏輯,是應用服務核心部分;數據訪問層負責數據持久化,支持業務邏輯層。各層次之間通過接口進行隔離,有利于后續維護擴展,減低依賴和影響。
應用服務完成開發后進行集成部署。Web層將根據約定集成到Web應用容器,其余層次構建為應用服務進行部署,并將服務接口進行注冊登記發布使用。
六、結語
基礎架構大致設計就這樣,還需要考慮實施部署,可以考慮云平臺彈性資源,再結合docker容器技術。
后續再逐步介紹相關基礎組件設計及實現原理。技術框架重于解決問題,設計依賴需求,需求來源實際業務場景。
作者:劉蔡濤
公眾號:【51dotnet】![](https://s1.51cto.com/images/blog/201809/16/aa9fb314934cde606d0f472e0b6c88da.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。