Jetty9.2.2集群Session共享
為了搭建Jetty9.2.2集群解決Session共享問題,參考官網給出來的文檔。對Session保持到數據庫(可以為關系型或非關系型)。我測試用的是MySQL,也可以說NoSQL數據庫。
針對Jetty就不過多的介紹了,自行研究去吧!
1.準備環境
MySQL數據庫;下載地址:自行百度。
jetty-distribution-9.2.2:下載地址:http://download.eclipse.org/jetty/
2.配置方式
在JETTY_HOME/etc目錄下找到jetty.xml文件。添加如下配置:
<!-- ========================== session mysql demo =================================== --> <Set name="sessionIdManager"> <New id="jdbcidmgr" class="org.eclipse.jetty.server.session.JDBCSessionIdManager"> <Arg> <Ref id="Server" /> </Arg> <Set name="workerName">fred</Set> <Call name="setDriverInfo"> <Arg>com.mysql.jdbc.Driver</Arg> <Arg>jdbc:mysql://127.0.0.1:3306/mydb?user=root&password=123123</Arg> </Call> <Set name="scavengeInterval">60</Set> </New> </Set> <Call name="setAttribute"> <Arg>jdbcIdMgr</Arg> <Arg> <Ref id="jdbcidmgr" /> </Arg> </Call>
其中的數據庫配置是我本地的配置,如果要上生產環境。請與系統數據庫保持一致,確保系統正常使用。(也可以不一樣,你自由選擇)
此處,配置的數據庫為系統運行過程中Session保存為多個中間件服務器使用的數據庫。稍后Jetty啟動的時候,會自動去數據庫中創建這兩張表。
然后,在JETTY_HOME/webapps中創建一個文件夾,并命名為:ROOT。這個ROOT和tomcat中的ROOT是同一回事,將自己的項目復制到該目錄下。并且在項目的 WEB-INF 中新建jetty-env.xml,
jetty-env.xml中配置內容如下:
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <Configure id="webappContext" class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="contextPath">/</Set> <Get name="server"> <Get id="jdbcIdMgr" name="sessionIdManager"/> </Get> <Set name="sessionHandler"> <New class="org.eclipse.jetty.server.session.SessionHandler"> <Arg> <New id="jdbcmgr" class="org.eclipse.jetty.server.session.JDBCSessionManager"> <Set name="sessionIdManager"> <Ref id="jdbcIdMgr"/> </Set> </New> </Arg> </New> </Set> </Configure>
3.啟動Jetty
回到JETTY_HOME目錄下。如果是Windows系統,打開cmd 將目錄切換到JETTY_HOME/下。輸入命令:java -jar start.jar (其他參數自行去查閱)來啟動項目。
如果是Linux系統下,bin/jetty.sh 進行啟動。
Jetty session的集群基本實現。然后再掛上Nginx進行均衡Jetty中間件服務器!OK
------------------------------------------------------------------------------------------------------------------------------
其他說明:
1.官網說明文檔地址:http://www.eclipse.org/jetty/documentation/
2.也可以將Session保存到NoSQL數據庫。參考文檔:http://www.eclipse.org/jetty/documentation/current/session-clustering-mongodb.html
來自:http://my.oschina.net/Rayn/blog/380231