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