我們將 DataServer 拆分為功能服務(wù)器和應(yīng)用服務(wù)器,基于如下幾個(gè)方面的考慮:
(1) 能更簡(jiǎn)單的添加不同類型的應(yīng)用。在這種拆分的狀態(tài)下,如果需要增加一個(gè)新的應(yīng)用,那么只需要增加一個(gè)新的應(yīng)用服務(wù)器即可。比如,現(xiàn)有的應(yīng)用服務(wù)器是以 TCP 的方式提供服務(wù),如果我想增加一種以 WebService 方式來(lái)發(fā)布我們的服務(wù),那么我只要增加一個(gè) WebService 應(yīng)用服務(wù)器,而不管是 TCP 應(yīng)用服務(wù)器還是 WebService 應(yīng)用服務(wù)器,它們的后端都是通過(guò)同一個(gè)功能服務(wù)器來(lái)提供功能處理的。
(2) 功能服務(wù)器框架可復(fù)用。由于功能服務(wù)器只處理功能請(qǐng)求,不參與用戶管理等其它具體與應(yīng)用相關(guān)的內(nèi)容,所以它是一個(gè)單純的服務(wù)器,正是由于這種單純性,使得功能服務(wù)器框架可以高度復(fù)用。比如,你想開(kāi)發(fā)一套自己的特殊服務(wù),那么完全可以將整個(gè)功能服務(wù)器搬過(guò)來(lái),只要開(kāi)發(fā)你自己的一系列功能插件來(lái)提供你想要的服務(wù)就 OK 了,這就把本來(lái)開(kāi)發(fā)一個(gè)系統(tǒng)的工作量縮減為為開(kāi)發(fā)幾個(gè)插件工作量。這是一種高級(jí)的復(fù)用。
(3) 集群更容易實(shí)現(xiàn)。我們知道,功能服務(wù)器處理所有的功能請(qǐng)求,所以,當(dāng)在線用戶人數(shù)增多時(shí),一個(gè)功能服務(wù)器忙不過(guò)來(lái),這是常見(jiàn)的情況,而應(yīng)用服務(wù)器由于只作簡(jiǎn)單的用戶管理和轉(zhuǎn)發(fā)數(shù)據(jù),沒(méi)有太大的計(jì)算工作,所以應(yīng)用服務(wù)器處理起來(lái)一般是游刃有余的,瓶頸在功能服務(wù)器。在這樣的情況下,我們可以讓一臺(tái)應(yīng)用服務(wù)器連上多個(gè)功能服務(wù)器,然后加上調(diào)度功能,即可簡(jiǎn)單的實(shí)現(xiàn)負(fù)載平衡集群,如果把對(duì)功能服務(wù)器的性能監(jiān)視做得更深入一些,甚至可以做到故障轉(zhuǎn)移集群。我們不用再求助 COM+ 等類似的東東了。
(4) 實(shí)現(xiàn)功能服務(wù)器的“熱插拔”。前面提到了實(shí)現(xiàn)功能插件的“熱插拔”是功能服務(wù)器的一個(gè)基本需求,在運(yùn)行的過(guò)程中可以動(dòng)態(tài)的添加 / 移除功能服務(wù)器自然也是我們的基本需求之一了。當(dāng)我們發(fā)現(xiàn)某臺(tái)功能服務(wù)器需要停機(jī)維修時(shí),只要在與之相關(guān)的應(yīng)用服務(wù)器上點(diǎn)一下“移除”按鈕就可以了;由于訪問(wèn)量的增加,當(dāng)我們購(gòu)買了一臺(tái)新的機(jī)器作為功能服務(wù)器時(shí),只要在相應(yīng)的應(yīng)用服務(wù)器上點(diǎn)一下“動(dòng)態(tài)連接到功能服務(wù)器”按鈕就可以了。一切都那么靈活,全在運(yùn)行時(shí)完成,服務(wù)器不用停止,客戶不用等待。
有人提出,將功能服務(wù)器 AS 拆開(kāi), AS 之間的通信就需要時(shí)間,這樣會(huì)降低整體系統(tǒng)的效率。確實(shí)是會(huì)有點(diǎn)影響,但是考慮到 FS 通常位于同一局域網(wǎng)內(nèi),它們之間可以通過(guò) AS 與 AS/FS 這種靈活的模型。
企業(yè)級(jí)服務(wù)器設(shè)計(jì)與實(shí)現(xiàn)經(jīng)驗(yàn)之系統(tǒng)框架(一)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
