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