樓主有個生產環境,有3臺服務器,以下簡稱為A/B/C,上面建了A/B/C三個node節點,IHS和DM也部署在A上,只有1個IHS,簡單的1拖3架構。
建了1個水平集群,3個SERVER分布在3個node上。SERVER配置只改動了JVM大小、webcontainer大小、JVM日志、cookie名(每個server不一樣),其他均未改動。
IHS只改動了maxclients,其他未改動。
IHS PLUGIN 均為默認配置,未改動。
樓主碰到的問題:
有個應用,登錄的時候會把一些資訊存盤到SESSION中,緊接著的后一個請求再取出來用。但是生產環境出現了下一個請求有時候會取不到上一個請求保存的SESSION的情況,概率較小。
進一步測驗,如果把a server關掉,只留b/c server,取不到SESSION的情況概率大大增加,可以達到50%。
而如果a server是開著的,貌似請求大部分都發給了a server處理。
把IHS PLUGIN的日志調整為DEBUG級別,跟蹤后發現了以下規律:
1)如果上一個請求是b/c server回應的,下一個請求卻發給了a,于是就出現了取不到SESSION的情況。
PLUGIN-IN日志記錄:DEBUG: ws_server_group: NewserverGroupNextRoundRobinServer: Round Robin load balancing ;(采用RR)
2)如果上一個請求是a server回應的,下一個請求基本上都還是交給a處理。
PLUGIN-IN日志記錄:DEBUG: ws_common: websphereParseCloneID: Parsing clone ids from 0000HYWoVdhHX4hteSmeTGkOCCz:1a854qhjl;(session Affinity)
3)PLUGIN里面記錄的統計資訊如下,可以看到只有a1有affinityRequest,并且a1回應了絕大部分請求。
STATS: ws_server: serverSetFailoverStatus: Server Node134_cluster2_server_a1 : pendingRequests 0 failedRequests 0 affinityRequests 997 totalRequests 1026.
STATS: ws_server: serverSetFailoverStatus: Server hrac1Node01_cluster2_server_b1 : pendingRequests 0 failedRequests 0 affinityRequests 0 totalRequests 5.
STATS: ws_server: serverSetFailoverStatus: Server hrac2Node01_cluster2_server_c1 : pendingRequests 0 failedRequests 0 affinityRequests 0 totalRequests 35.
從以上測驗結果來看,a server有session affinity效果,只要一開起來,會把壓力都集中到這臺上面。
b/c server沒有session affinity效果,請求分發采用隨機輪詢,就可能會出現下一個請求取不到上個請求保存的SESSION的問題。
查看plugin-cfg.xml ,看到它配置了AffinityCookie="cluster2_a1",不過并沒有其它兩個session:cluster2_b1/cluster2_c1的配置。
也就是說,只有cluster2_a1朿 session Affinity,而其它cluster2_b1/cluster2_c1卻沒有。
<UriGroup Name="default_host_cluster2_URIs">
<Uri AffinityCookie="cluster2_a1" AffinityURLIdentifier="jsessionid" Name="/cm/*"/>
</UriGroup>
如果我把cluster2_b1/cluster2_c1兩個cookie也都添加到上面的affinityCookie配置里面,仍然只有cluster_a1有affinity 效果。
總結問題:WAS 為什么只給a1 賦予了AffinityCookie,而其它兩個沒有?這樣子不是會負載失衡嗎?
有沒有什么辦法可以使皿3個server都有Affinity效果。
uj5u.com熱心網友回復:
創建新集群的時候注意勾選”配置HTTP會話記憶體到記憶體復制”,這樣就能使session在集群內共享;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/31740.html
標籤:WebSphere
上一篇:sharepoint2013 串列編輯頁面保存后資料丟失
下一篇:xftp 打開遠程地址后自動關閉
