.Net微服務(wù)架構(gòu)

一、背景&問題

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、上蔡網(wǎng)站維護(hù)、網(wǎng)站推廣。

之前框架是一個基于SOA思想設(shè)計(jì)的分布式框架。各應(yīng)用通過服務(wù)方式提供使用,服務(wù)之間通信是RPC方式調(diào)用,具體實(shí)現(xiàn)基于.NET的WCF通信平臺。框架存在如下2個問題:

1、高并發(fā)處理能力不足。一當(dāng)高并發(fā)請求,可能出現(xiàn)多個服務(wù)待定處理,導(dǎo)致整個系統(tǒng)出現(xiàn)瓶頸。

2、隨著移動端廣泛應(yīng)用,服務(wù)不能靈活支持APP應(yīng)用。

3、系統(tǒng)持續(xù)集成部署過于繁瑣,遇到問題不好定位。

基于以上存在問題升級框架,結(jié)合當(dāng)前主流的架構(gòu)思想,將系統(tǒng)進(jìn)行服務(wù)化思維,就是“微服務(wù)架構(gòu)”。

二、微服務(wù)架構(gòu)

微服務(wù)架構(gòu)(Microservices Architecture)是將系統(tǒng)拆分為多個服務(wù),俗稱為應(yīng)用服務(wù)。應(yīng)用服務(wù)實(shí)現(xiàn)單一、具體的業(yè)務(wù)應(yīng)用功能,支持獨(dú)立部署維護(hù),多個應(yīng)用服務(wù)構(gòu)建成系統(tǒng)。應(yīng)用服務(wù)之間通過輕量級通信框架進(jìn)行,并且支持應(yīng)用服務(wù)用不同技術(shù)或者平臺實(shí)現(xiàn)。微服務(wù)架構(gòu)是SOA架構(gòu)設(shè)計(jì)思想另一種實(shí)現(xiàn)方式。微服務(wù)架構(gòu)有如下特點(diǎn):

1、微服務(wù)架構(gòu)好處

(1)橫向擴(kuò)展應(yīng)用服務(wù)提升系統(tǒng)并發(fā)處理能力

(2)應(yīng)用服務(wù)獨(dú)立部署維護(hù),有利于迭×××發(fā)升級持續(xù)部署

(3)架構(gòu)靈活支持多種技術(shù)實(shí)現(xiàn)

(4)有利于應(yīng)用服務(wù)實(shí)現(xiàn)高可用性

2、微服務(wù)架構(gòu)不足

(1)對系統(tǒng)設(shè)計(jì)有一定要求,尤其是拆分技術(shù)應(yīng)用服務(wù)接口

(2)導(dǎo)致系統(tǒng)實(shí)現(xiàn)復(fù)雜度的提高

(3)需要確保系統(tǒng)數(shù)據(jù)一致性機(jī)制

(4)導(dǎo)致系統(tǒng)維護(hù)要求和成本提高

系統(tǒng)是否需要采用微服務(wù)架構(gòu)進(jìn)行構(gòu)建是由項(xiàng)目需求決定。采用微服務(wù)架構(gòu)進(jìn)行設(shè)計(jì)構(gòu)建系統(tǒng),對團(tuán)隊(duì)成員能力比傳統(tǒng)要求高,尤其是設(shè)計(jì)能力。

三、框架設(shè)計(jì)原則

1、可擴(kuò)展:支持不修改系統(tǒng)功能,按需擴(kuò)展服務(wù)器資源。

2、高可用:支持分布式部署雙機(jī)熱備機(jī)制,滿足系統(tǒng)高可用性的要求。

3、高并發(fā):支持快捷擴(kuò)張應(yīng)用服務(wù)處理能力,提升系統(tǒng)處理能力,滿足并發(fā)請求。

4、安全性:訪問安全通過統(tǒng)一認(rèn)證訪問;信息安全通過加解密、簽名傳輸;網(wǎng)絡(luò)安全通過網(wǎng)絡(luò)隔離及防火墻;數(shù)據(jù)安全通過定時備份及高容錯能力。

5、一致性:采用數(shù)據(jù)最終一致性策略。

四、框架總體設(shè)計(jì)


.Net微服務(wù)架構(gòu)
圖1- 系統(tǒng)架構(gòu)示意圖

如圖所示,系統(tǒng)架構(gòu)基于SOA架構(gòu)設(shè)計(jì)思想,并且采用微服務(wù)架構(gòu)方式進(jìn)行設(shè)計(jì)和構(gòu)建。將系統(tǒng)呈現(xiàn)和數(shù)據(jù)進(jìn)行分離。系統(tǒng)呈現(xiàn)基于網(wǎng)頁進(jìn)行實(shí)現(xiàn),支持多種前端UI框架整合及自定義開發(fā);數(shù)據(jù)由應(yīng)用服務(wù)提供,統(tǒng)一通過“網(wǎng)關(guān)API”提供使用。架構(gòu)支持通過網(wǎng)絡(luò)層、應(yīng)用層的負(fù)載均衡中間件等,實(shí)現(xiàn)高可用和并發(fā)處理能力。架構(gòu)將一些基礎(chǔ)公共功能抽離構(gòu)建成中間件。

1、網(wǎng)關(guān)API:應(yīng)用服務(wù)通過網(wǎng)關(guān)API統(tǒng)一對外提供服務(wù)。網(wǎng)關(guān)API基于http協(xié)議、以restful方式提供統(tǒng)一服務(wù)接口,約定接口通信協(xié)議,支持系統(tǒng)呈現(xiàn)的功能,以輕量級的通信方式,滿足不同客戶端。網(wǎng)關(guān)API實(shí)現(xiàn)統(tǒng)一數(shù)據(jù)訪問權(quán)限控制、路由應(yīng)用服務(wù)、限流等功能。

2、消息平臺:負(fù)責(zé)應(yīng)用服務(wù)之間更新同步信息,將原有系統(tǒng)架構(gòu)分布式事務(wù)調(diào)用更新信息的方式,調(diào)整為通過消息異步發(fā)布/訂閱處理,保證數(shù)據(jù)最終一致性,應(yīng)用服務(wù)之間降低耦合度和強(qiáng)依賴關(guān)系。高并發(fā)能力下,取得緩存作用。

3、服務(wù)注冊監(jiān)控中心:負(fù)責(zé)應(yīng)用服務(wù)注冊發(fā)布登記,同時監(jiān)控應(yīng)用服務(wù)接口運(yùn)行情況,支持動態(tài)控制應(yīng)用服務(wù)接收請求,實(shí)現(xiàn)“去中心化”服務(wù)控制。組件實(shí)現(xiàn)服務(wù)注冊登記、監(jiān)控等功能。

4、認(rèn)證中心:負(fù)責(zé)架構(gòu)訪問統(tǒng)一身份認(rèn)證。通過用戶口令和權(quán)限進(jìn)行控制訪問。結(jié)合“網(wǎng)關(guān)API”實(shí)現(xiàn)安全訪問、限流等功能,同時實(shí)現(xiàn)頁面管理功能。

5、日志管理系統(tǒng):負(fù)責(zé)記錄系統(tǒng)日志,提供服務(wù)接口和組件,業(yè)務(wù)代碼通過異步方式將日志信息傳輸?shù)健跋⑵脚_”,日志管理系統(tǒng)訂閱“消息平臺”的日志信息進(jìn)行處理存儲。同時提供日志管理功能

6、緩存中心:基于redis分布式內(nèi)存數(shù)據(jù)庫,搭建架構(gòu)統(tǒng)一緩存中心,提供統(tǒng)一緩存服務(wù)。

五、軟件架構(gòu)設(shè)計(jì)

  ![](/upload/otherpic49/c14c421330ee943366926a7f34eb9129.png)

                                                   圖2- 軟件架構(gòu)示意圖

如圖所示,系統(tǒng)架構(gòu)以微服務(wù)架構(gòu)方式進(jìn)行開發(fā),從切面觀察每個應(yīng)用服務(wù)進(jìn)行垂直獨(dú)立開發(fā),根據(jù)職責(zé)劃分層次,從上而下分為四個層次,分別為Web層、服務(wù)接口層、業(yè)務(wù)邏輯層及數(shù)據(jù)訪問層。Web層主要負(fù)責(zé)系統(tǒng)功能呈現(xiàn)表達(dá),直接面對用戶;服務(wù)接口層主要負(fù)責(zé)提供標(biāo)準(zhǔn)化服務(wù)接口,與呈現(xiàn)層對接;業(yè)務(wù)邏輯層主要實(shí)現(xiàn)應(yīng)用業(yè)務(wù)邏輯,是應(yīng)用服務(wù)核心部分;數(shù)據(jù)訪問層負(fù)責(zé)數(shù)據(jù)持久化,支持業(yè)務(wù)邏輯層。各層次之間通過接口進(jìn)行隔離,有利于后續(xù)維護(hù)擴(kuò)展,減低依賴和影響。

應(yīng)用服務(wù)完成開發(fā)后進(jìn)行集成部署。Web層將根據(jù)約定集成到Web應(yīng)用容器,其余層次構(gòu)建為應(yīng)用服務(wù)進(jìn)行部署,并將服務(wù)接口進(jìn)行注冊登記發(fā)布使用。

六、結(jié)語

基礎(chǔ)架構(gòu)大致設(shè)計(jì)就這樣,還需要考慮實(shí)施部署,可以考慮云平臺彈性資源,再結(jié)合docker容器技術(shù)。

后續(xù)再逐步介紹相關(guān)基礎(chǔ)組件設(shè)計(jì)及實(shí)現(xiàn)原理。技術(shù)框架重于解決問題,設(shè)計(jì)依賴需求,需求來源實(shí)際業(yè)務(wù)場景。

作者:劉蔡濤
公眾號:【51dotnet】![](/upload/otherpic49/aa9fb314934cde606d0f472e0b6c88da.png)

文章名稱:.Net微服務(wù)架構(gòu)
網(wǎng)頁鏈接:http://bm7419.com/article28/goejcp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、云服務(wù)器、ChatGPT、Google微信小程序、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)