国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

WXS環(huán)境下的e—CIQ主干系統(tǒng)跨集群SESSION共享故障排查實(shí)例

2016-05-30 07:49魏文鐘毅馬欣欣謝成宸
知識窗·教師版 2016年4期
關(guān)鍵詞:主干客戶端集群

魏文 鐘毅 馬欣欣 謝成宸

中國電子檢驗檢疫主干系統(tǒng)(以下簡稱e-CIQ主干系統(tǒng))是基于全國大集中要求設(shè)計的全新核心業(yè)務(wù)系統(tǒng),它依托在北京建設(shè)的亦莊、東壩雙活數(shù)據(jù)中心,實(shí)現(xiàn)了全國大集中條件下應(yīng)用可用性99.99%的設(shè)計要求。而用戶Session會話的跨數(shù)據(jù)中心集群的安全、快速、可靠共享管理,是確保雙活順利實(shí)現(xiàn)的關(guān)鍵。為此,e-CIQ主干系統(tǒng)運(yùn)用跨WAS集群的Session,選用了業(yè)界領(lǐng)先的IBM WAS SESSION高速緩存服務(wù)中心(WebSphere eXtreme Scale,WXS)方案來實(shí)現(xiàn)應(yīng)用集群的SESSION共享管理工作。

通過IBM、官方文檔及售前工程師的介紹,WXS高速緩存服務(wù)中心是將原有多節(jié)點(diǎn)的Session會話共享管理工作通過專用的獨(dú)立HIS/WAS/WXS服務(wù)器(標(biāo)準(zhǔn)最小部署至少18個節(jié)點(diǎn))實(shí)現(xiàn)跨集群Session會話內(nèi)容共享管理,對Session的管理依然遵循JavaEE技術(shù)標(biāo)準(zhǔn),包括客戶端與服務(wù)器端Session的保存機(jī)制,均采用JSessionID來保持Session的內(nèi)容,這也是JavaEE標(biāo)準(zhǔn)的實(shí)現(xiàn)方式。

在e-CIQ主干系統(tǒng)北京雙活數(shù)據(jù)中心機(jī)房測試環(huán)境中,硬件環(huán)境集成商已完成WAS集群和Session高速緩存服務(wù)中心搭建,同時在雙活中心測試環(huán)境也部署了e-CIQ主干系統(tǒng)應(yīng)用。但是經(jīng)過第三方測試,e-CIQ項目應(yīng)用集群Session信息無法共享,在客戶端連接時會出現(xiàn)Session丟失的情況,客戶端會提示“服務(wù)器已經(jīng)重啟,您的登錄信息已經(jīng)失效,請重新登錄”并報錯。如圖1所示:

一、背景情況

e-CIQ主干系統(tǒng)雙活中心WAS集群的部署結(jié)構(gòu)適合于應(yīng)用業(yè)務(wù)雙活類型,具備軟件業(yè)務(wù)應(yīng)用層面實(shí)現(xiàn)業(yè)務(wù)雙活、多路徑訪問以及負(fù)載均衡,單中心基于VMware vSphere HA和應(yīng)用集群(中間件集群),雙活數(shù)據(jù)中心之間采用應(yīng)用軟件1∶1部署,雙活中心之間采用Session高速緩存服務(wù)中心(WXS)集中管理緩存,保證雙活數(shù)據(jù)中心內(nèi)的單個中心全站點(diǎn)在宕機(jī)極端情況下,作為雙活數(shù)據(jù)中心整體仍然能夠?qū)ν獬掷m(xù)提供業(yè)務(wù)服務(wù),如圖2所示:

基于IBM官方提供的標(biāo)準(zhǔn)測試WAR包在WAS環(huán)境下的Session高速緩存服務(wù)中心下,可以實(shí)現(xiàn)集群Session集中共享。但是經(jīng)第三方測試反饋,e-CIQ主干系統(tǒng)應(yīng)用集群Session共享存在問題,出現(xiàn)Session頻繁丟失的情況。

筆者初步分析問題后,發(fā)現(xiàn)由e-CIQ主干系統(tǒng)創(chuàng)建的Session會話信息并未成功存放到WAS集群下的WXS Session高速緩存服務(wù)器中,導(dǎo)致e-CIQ主干系統(tǒng)Session會話信息無法共享。筆者經(jīng)過進(jìn)一步分析,了解到e-CIQ主干系統(tǒng)基于中國電子檢驗檢疫統(tǒng)一開發(fā)平臺(以下簡稱UIP平臺)進(jìn)行開發(fā)的,軟件開發(fā)商遵循標(biāo)準(zhǔn)的開發(fā)平臺規(guī)范,對業(yè)務(wù)邏輯進(jìn)行編碼實(shí)現(xiàn),底層資源、包括Session的管理,均在UIP平臺中實(shí)現(xiàn),業(yè)務(wù)應(yīng)用代碼層面并沒有對Session進(jìn)行處理。

二、故障排查

根據(jù)IBM官方技術(shù)支持反饋,WXS作為IBM提供的分布式高速緩存平臺,用于存儲服務(wù)器端的會話信息,由容器服務(wù)器和目錄服務(wù)器組成,目錄服務(wù)器主要用于索引,容器服務(wù)器才是真正存放會話信息的服務(wù)器。多臺服務(wù)器把會話信息存放在容器服務(wù)器內(nèi),用戶讀取信息時,需要從目錄服務(wù)器查詢會話信息的容器服務(wù)器,查詢完成后再從相應(yīng)的容器服務(wù)器獲取會話信息,就能實(shí)現(xiàn)會話信息的共享了。也就是說,為了實(shí)現(xiàn)會話信息共享,索引和內(nèi)容兩個關(guān)鍵點(diǎn)缺一不可。

為此,在北京雙活數(shù)據(jù)中心測試WAS集群中,筆者和開發(fā)人員首先在服務(wù)端環(huán)境中開發(fā)了一個JSP頁面,進(jìn)行抓包分析測試。在使用WXS抓包套件條件下,通過對HTTP請求抓包,發(fā)現(xiàn)兩次COOKIE項值與未使用WXS的情況存在差異。具體表現(xiàn)為:使用WXS后JSessionID經(jīng)過加工處理,增加了標(biāo)記段,同時多傳回標(biāo)記為IBMID的COOKIE值。抓包測試結(jié)果如圖3、圖4所示。

筆者經(jīng)排查發(fā)現(xiàn),IBM WAS 在實(shí)現(xiàn)Session共享時,會對JSessionID 進(jìn)行相關(guān)處理,包括修改JSessionID的值。JSessionID本身是用來存放SESSION ID的,IBM WAS 會在Session ID 前增加4位字符,在Session ID 結(jié)尾處增加一個以“:”(英文冒號)開始、以“;”(英文分號)結(jié)束的字符串,如圖5所示:

此外,富客戶端每次發(fā)起網(wǎng)絡(luò)請求時還需包含IBMID參數(shù),IBMID參數(shù)的值是以SESSIONID開頭,然后在結(jié)尾處增加一個以“:”( 英文冒號)開頭的字符串。每次請求時,必須包含這兩個參數(shù),并且要嚴(yán)格遵守上述格式,否則就會出現(xiàn)Session丟失故障提示,如圖6所示:

至此,筆者猜測問題在于IBM WAS在實(shí)現(xiàn)Session共享時,并未遵循JavaEE Web技術(shù)標(biāo)準(zhǔn)對SessionID 進(jìn)行相關(guān)修改。之后,相關(guān)的分析也佐證了筆者的猜測。

從操作性、安全性及效率性來考量,e-CIQ主干系統(tǒng)客戶端使用了Java AWT(Abstract Window ToolKit)的Swing封裝套件,基于UIP-RCP(Rich Client Platform)開發(fā)的富客戶端。作為對比,IBM官方標(biāo)準(zhǔn)測試WAR包是基于B/S模式實(shí)現(xiàn)的Web頁面跨集群Session會話共享管理。瀏覽器和富客戶端對Session的管理機(jī)制存在差異,主流瀏覽器回傳的是整個Session字符串,而富客戶端按照J(rèn)ava標(biāo)準(zhǔn)僅回傳JSessionID值。這就解釋了IBM官方測試WAR包緩存共享測試通過的原因。

進(jìn)一步深入查詢相關(guān)技術(shù)文檔后,筆者發(fā)現(xiàn)IBMID由WXS負(fù)責(zé)跟蹤,其與JSessionID的格式略有不同。JSessionID的格式為:,IBM WXS IBMID的格式為:。

三、解決方案

明確問題故障節(jié)點(diǎn)后,筆者和技術(shù)人員就開始著手排除故障,主要是針對UIP v4.4平臺中rcp-core.jar進(jìn)行修改。修改工作主要包括三處,分別是:

第一,對ClientSession類進(jìn)行修改,增加IBMID成員變量,提供getter和setter方法,用于將IBMID存儲以及搜索WXS中的Session會話信息。如圖7所示:

第二,修改HttpClientProxy類,對IBMID進(jìn)行判斷,針對存儲在Cookie中的IBMID,在每次發(fā)送request時候,同時將IBMID也一起發(fā)送。如圖8所示:

第三,修改HttpStreamProxy類,生成符合WXS環(huán)境下共享緩存所需的IBM JSessionID和IBMID格式SessionID值串。如圖9所示:

四、工作小結(jié)

IBM WAS系列產(chǎn)品作為行業(yè)龍頭,憑借操作系統(tǒng)(AIX)+中間件(WAS)+數(shù)據(jù)庫(DB2)的頗具殺傷力的組合,其中間件產(chǎn)品標(biāo)準(zhǔn)基本上與行業(yè)標(biāo)準(zhǔn)、技術(shù)標(biāo)準(zhǔn)畫等號。

令人信任的產(chǎn)品不能盲從于權(quán)威,尤其是在細(xì)節(jié)方面。WAS產(chǎn)品為了實(shí)現(xiàn)自身更多的獨(dú)有特性,犧牲了不少兼容性,并對配置提出了更高的要求,值得大家在項目管理工作中更加注意。

(作者單位:江西出入境檢驗檢疫局)

猜你喜歡
主干客戶端集群
抓主干,簡化簡單句
虛擬專用網(wǎng)絡(luò)訪問保護(hù)機(jī)制研究
群文閱讀:為孩子打好生命底色
新聞客戶端差異化發(fā)展策略
勤快又呆萌的集群機(jī)器人
集群品牌是集群整體的品牌還是集群產(chǎn)品的品牌?
淺析IEEE 802.1x及其客戶端軟件
寓美于物理力學(xué)主干知識的復(fù)習(xí)
满洲里市| 宜丰县| 广平县| 连城县| 秦皇岛市| 日喀则市| 潮安县| 晋城| 渑池县| 沧州市| 宁都县| 内江市| 维西| 临泉县| 梁山县| 龙川县| 武山县| 镇赉县| 汪清县| 探索| 辽宁省| 曲沃县| 华阴市| 泸溪县| 桃江县| 逊克县| 吉木萨尔县| 怀仁县| 河源市| 大兴区| 武陟县| 邯郸市| 郓城县| 汉阴县| 广灵县| 尤溪县| 城口县| 靖远县| 太仆寺旗| 克山县| 建昌县|