Jetty9.2.2集群Session共享

jopen 9年前發布 | 35K 次閱讀 Jetty 應用服務器

為了搭建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&amp;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啟動的時候,會自動去數據庫中創建這兩張表。

    Jetty9.2.2集群Session共享

    

    然后,在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>



 截至,Session的集群分布配置完成。


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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!