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

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