2014-04-11 18 views
0

在組服務器工作時我遇到一個問題:會話ID的變化週期性地(nginx的/ Tomcat的/ mamcached/MSM)

  • 1 - linux_01.xx - >的nginx(proxy_pass)
  • 2 - linux_02.xx - > tomcat01(8081)/ tomcat02(8082)/ memcached的
  • 2 - linux_03.xx - > tomcat01(8081)/ tomcat02(8082)

4個TOMCATS使用MSM(非粘性模式)​​共享會話。

在那些tomats

僅存在1簡單的web應用,的index.jsp 只有1中的 「體」 節點行:

<%= session.getId()%>


現在我可以看到頁面:
http://linux_01.xx/s/index.jsp

我只是通過單擊超鏈接重新加載頁面。每次我看到nginx的轉發請求(我加了一些日誌配置):

========================================= ========

和網頁每次的內容如下:

  • 92DSAD8248237523875283723843-N1
  • 92DSAD8248237523875283723843-N1
  • 92DSAD8248237523875283723843-N1
  • 92DSAD824823752387 5283723843-N1
  • MAS2983JDUEF83BF3NVDSN323556-N1
  • MAS2983JDUEF83BF3NVDSN323556-N1
  • MAS2983JDUEF83BF3NVDSN323556-N1
  • MAS2983JDUEF83BF3NVDSN323556-N1
  • 0928MSDHEW28JFWF2KEWM23FS-N1
  • 0928MSDHEW28JFWF2KEWM23FS-N1
  • 0928MSDHEW28JFWF2KEWM23FS-N1
  • 0928MSDHEW28JFWF2KEWM23FS- n1

爲什麼session id會像這樣週期性地改變?應該保持不變...

但它不會改變,如果我們只有linux_02或linux_03。如果這些tomcat來自linux_02和linux_03,它總是會改變。

有人能幫助我嗎?我花了很多時間在這..很多很多謝謝。

+0

您正在使用哪個版本的MSM? – Jeroen

+0

WEB-INF/lib中的工作人員::::: hibernate-3.6.10-3.6.10.jar --- hibernate-jpa-2.0-api-1.0.1-1.0.1.jar --- hibernate-search -3.4.1-3.4.1.jar --- javolution-5.4.3.1.jar --- msm -javolution-serializer-1.7.0.jar – user2084013

+0

apache-tomcat-7.0.50已使用 – user2084013

回答

0

我偶然發現了一個關於使用Tomcat進行並行部署的教程,同時研究了一個類似的問題。查看標題"With Session Established"下的部分,並告訴我這是否有助於指導您在多個服務器上管理會話的正確方向。

0

原來這是由於這些服務器之間的時間(時鐘)不一致造成的,差距超過1天。

我通過設置NTPD和NTP客戶端來解決這個問題,以確保這些服務器的時間相同。