.NET开发框架(三)-高可用服务器端设计
我們對框架功能作了簡述,演示視頻請點(diǎn)擊?這里查看?,
本章節(jié),我們專門講解一下,如何在Window服務(wù)器下,設(shè)計(jì)高可用的框架。
我們的框架設(shè)計(jì)采用的是Window版本的服務(wù)端設(shè)計(jì):
整體框架圖如下,
為什么我們需要如此設(shè)計(jì)?
本文僅簡述NLB與ARR的利與弊,更多技術(shù)文章往后推出。
我們引入NLB,相對于ARR來說,ARR是應(yīng)用級別的負(fù)載均衡方案,ARR只能做請求入口的分發(fā)服務(wù),而NLB則是服務(wù)器級別的負(fù)載均衡方案。
如果微軟的這兩款方案我們結(jié)合起來使用,即可搭建高可用網(wǎng)站方案。
Application Request Route與NLB高可用方案的演進(jìn)
1、Application Request Route方案,如下圖
?
缺點(diǎn):
ARR可以檢測到你的iis應(yīng)用是否可用,并對用戶的請求實(shí)施負(fù)載均衡方案,根據(jù)我們配置的負(fù)載均衡算法,把用戶的請求分發(fā)到應(yīng)用服務(wù)器中。
但是,如果我們的ARR服務(wù)器down掉之后,我們的整個應(yīng)用程序就無法使用,達(dá)不到24*7用不宕機(jī)的高可用要求。
?
2、NLB的網(wǎng)路負(fù)載平衡方案
缺點(diǎn):
NLB可以最多可以配置32臺服務(wù)器,這32臺服務(wù)器通過擁有自己的獨(dú)立ip之外,還共有一個虛擬IP,用戶訪問虛擬ip,nlb集群根據(jù)配置的負(fù)載算法來確定把用戶的請求分發(fā)給那臺應(yīng)用服務(wù)器,如果一臺NLB服務(wù)器down掉,則不會影響消息的分發(fā)可達(dá)到7*24小時不down機(jī)的高可用方案。
但是,NLB不能檢測應(yīng)用你的iis網(wǎng)站是否down掉,只能檢測服務(wù)器是否down掉,這樣一來,如果你的iis網(wǎng)站已經(jīng)停止啦,nlb還給分發(fā)用戶請求,那樣麻煩可就來啦。
那么我們使用微軟的技術(shù)怎么樣做到網(wǎng)站的高可用呢?對,就是NLB+Application Request Route .
?
3、NLB+Application Request Route 方案
優(yōu)點(diǎn):用戶請求虛擬ip,接入nlb,nlb檢測一臺可用的服務(wù)器,請求轉(zhuǎn)發(fā)給arr,arr檢測可用的網(wǎng)站把用戶請求給分派處理,形成高可用方案。
框架設(shè)計(jì)預(yù)研中,靈感來源參考文獻(xiàn):https://cnblogs.com/knowledgesea/p/5157565.html
?
經(jīng)過綜合分析后,我們最終采用了NLB+ARR的結(jié)合,形成如下設(shè)計(jì)圖
?對于此框架的設(shè)計(jì)(優(yōu)點(diǎn)與缺點(diǎn)),元芳,您怎么看?歡迎留言吐槽。
| ??我們學(xué)的不僅是框架,更是夢想!更多文章,請查看www.letyouknow.net |
總結(jié)
以上是生活随笔為你收集整理的.NET开发框架(三)-高可用服务器端设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纠正一个错误,分布式系统关注点第17篇
- 下一篇: .NET Core 3.0中的WinFo