国产高清在线精品一区a_免费一级淫片aa_一级特黄录像播放_日本中文免费嗨片直播网

廣州為學(xué)教育科技有限公司

主營:JAVA開發(fā),軟件工程師,教育培訓(xùn)

免費店鋪在線升級

聯(lián)系方式
  • 公司: 廣州為學(xué)教育科技有限公司
  • 地址: 廣州天河區(qū)車陂灃宏大廈3樓
  • 聯(lián)系: 謝老師
  • 手機: 13632401219
  • 一鍵開店

J2EE中失效轉(zhuǎn)移是否可以完全避免錯誤

2018-12-08 11:55:36  832 次瀏覽

JBoss文檔中,有一整章節(jié)警告“你真的需要HTTP會話復(fù)制嗎?”,是的,有時候一個沒有失效轉(zhuǎn)移的高可用性方案也是可 以接受的,并且便宜。更進一步說,失效轉(zhuǎn)移并不像你想的那樣有力。

神秘程序員.png到底失效轉(zhuǎn)移給了你什么?你們中的一些可能認為它可以避免錯誤。您瞧,沒有失效轉(zhuǎn)移,會話數(shù)據(jù)在服務(wù)器失效時丟失了并引起錯誤;當會話失效轉(zhuǎn)移,會話可以從備份中恢復(fù),并且請求可以由另一個實例繼續(xù)處理,客戶端不知道該失效。這可能是真的,但它不是必要的條件。

當我定義“失效轉(zhuǎn)移”時,我定義了失效轉(zhuǎn)移發(fā)生的條件:“在方法調(diào)用之間”,意味著你可以有兩個連續(xù)的到一個遠程對象的方法,失效轉(zhuǎn)移將發(fā)生在個方法成功完成之后和第二個方法請求發(fā)出之前。

那么,在方法調(diào)用處理中間,遠程服務(wù)器失效了會發(fā)生什么事情?答案是:處理將停止,大多數(shù)案例中,客戶端將看到錯誤信息,除非該方法是等冪的(參考前文)。如果是等冪方法,一些負載均衡器足夠聰明,會在其它服務(wù)器上重試這些方法。

為什么等冪重要?因為當失效發(fā)生時,客戶端從來不知道請求在哪里執(zhí)行,方法被初始化或已經(jīng)完成了?客戶端從不確定它。如果方法不是等冪的,兩次調(diào)用同樣的方法將改變系統(tǒng)狀態(tài)兩次,系統(tǒng)將處于不一致狀態(tài)。

您可能想把所有的方法放在一個事務(wù)中就變成等冪的了。畢竟,如果錯誤發(fā)生,事務(wù)將回滾,所有的事務(wù)狀態(tài)沒有改變。但是事實是,事務(wù)邊界不能包括所有遠程方法調(diào)用。如果事務(wù)提交,在返回客戶端時網(wǎng)絡(luò)崩潰,客戶端不會知道服務(wù)器事務(wù)成功與否。

在應(yīng)用中,將所有方法變成等冪是不可能的。所以,通過失效轉(zhuǎn)移,你可以減少錯誤,但不能避免它們!以再現(xiàn)購物網(wǎng)站為例,假定每臺服務(wù)器實例可以同時處理100個在線用戶的請求。當一臺服務(wù)器失效,沒有會話失效轉(zhuǎn)移的方案將丟失所有那100個用戶的會話數(shù)據(jù)并激怒他們;當擁有會話失效轉(zhuǎn)移,只有20個用戶的請求被失效的服務(wù)器在處理過程中,只有這些用戶被錯誤激怒了。其它80個用戶還處在思考時間(用戶行為的間隔時間)或者方法調(diào)用之間。這些用戶的會話被透明地失效轉(zhuǎn)移了。所以,你應(yīng)該考慮以下事項:

*激怒20個和100個用戶的不同影響

*擁有失效轉(zhuǎn)移和沒有失效轉(zhuǎn)移的成本

網(wǎng)友評論
0條評論 0人參與
最新評論
  • 暫無評論,沙發(fā)等著你!
百業(yè)店鋪 更多 >

特別提醒:本頁面所展現(xiàn)的公司、產(chǎn)品及其它相關(guān)信息,均由用戶自行發(fā)布。
購買相關(guān)產(chǎn)品時務(wù)必先行確認商家資質(zhì)、產(chǎn)品質(zhì)量以及比較產(chǎn)品價格,慎重作出個人的獨立判斷,謹防欺詐行為。

回到頂部