目錄
上篇實現了 LINUX中NGINX反向代理下的TOMCAT叢集()" >上篇實現了 LINUX中NGINX反向代理下的TOMCAT叢集()
首頁 Java java教程 用redis實作tomcat集群下的session共享

用redis實作tomcat集群下的session共享

Jun 26, 2017 am 09:22 AM
redis session tomcat 實現 叢集

上篇實現了 LINUX中NGINX反向代理下的TOMCAT叢集()

##這次我們在上篇的基礎上實現session 共享問題

Nginx機器:192.168.1.108

兩台tomcat機器分別是:192.168.1.168

##                                               192.168.1.178

 

#'

##;’S」頁上中新增問題時在測試頁面上共享問題》。如下程式碼



 

SessionId:<%= session.getId() %>
<%   String  username =(String)session.getAttribute("username" );
      if(!"".equals(username)&& username!=null){
      out.print("------username is "+session.getAttribute("username"));
      } else {
      out.print("------start username is  null");
          session.setAttribute("username", "lxs"     session.setAttribute("username", "lxs"     session.setAttribute("username", "lxs" ). "------now username is "+session.getAttribute("username"));

      }

 %>

 

##  %>

 

 

#此時,透過nginx 造訪時第一次造訪的是178那台機器 

#再次刷新時,訪問了168那台機器

##可以看出,此時session 是不共享的,在群集下,分別創建了session

 

二:用redis實作session 共享    實作  session 共享的方法有很多種,而這次用的是將session存在redis 中實現共享。

 

1.安裝redis

(如何安裝請看)redis也是安裝在192.168.1.108,跟Nginx安裝在同一台機器了

  2.把需要的jar包分別拷貝到兩個tomcat 的lib目錄下

 

3. 修改context.xml 裡的內容

分別在tomcat/conf /context.xml裡加入以下內容

 

   #

    host="192.168.1.108

#    port="6379"                 

      maxInactiveInterval="60" />

 

其中className 是固定的,取得是jar包裡的實作的類別

host 是redis 的主機名稱 port是redis埠 database 是把session存放在redis的第幾個函式庫裡,

maxInactiveInterval表示session存活時間

 

 4.再次測試session共享

#經過前三步,已經實現了redis下的session共享問題,再次測試

分別啟動redis,nginx,以及tomcat 再次造訪http://192.168.1.108:7777/nginxTest/

#此時nginx 先轉送到178那台機器,此時,session裡的username是為空的,然後往

username裡存放了一個值,然後印出了值

 

再次造訪http://192.168.1.108:7777/nginxTest/,此時nginx 轉到了168那台機器

此時sessionid 跟178的一樣。同時username 也是有值的,直接印出了值

 

這說明了此時session 是共享的,同時在redis裡也存進去了對應session

 

以上是用redis實作tomcat集群下的session共享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? 在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? Apr 02, 2025 pm 04:54 PM

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

在Go編程中,如何正確管理Mysql和Redis的連接與釋放資源? 在Go編程中,如何正確管理Mysql和Redis的連接與釋放資源? Apr 02, 2025 pm 05:03 PM

Go編程中的資源管理:Mysql和Redis的連接與釋放在學習Go編程過程中,如何正確管理資源,特別是與數據庫和緩存�...

在Go語言中,如何構建高效的鍵值對內存存儲器? 在Go語言中,如何構建高效的鍵值對內存存儲器? Apr 02, 2025 pm 05:06 PM

在Go語言中,如何實現高效的鍵值對內存存儲器是一個值得探討的問題。許多開發者可能會想到使用map來實現這�...

如何使用go-redis/redis v8高效存儲和讀取Go結構體數組到Redis? 如何使用go-redis/redis v8高效存儲和讀取Go結構體數組到Redis? Apr 02, 2025 pm 04:51 PM

使用go-redis/redisv8保存Go結構體數組到Redis在使用go-redis/redis...

MySQL安裝時提示缺少依賴項如何解決 MySQL安裝時提示缺少依賴項如何解決 Apr 08, 2025 pm 12:00 PM

MySQL安裝失敗通常因缺少依賴項導致。解決方法:1.使用系統包管理器(如Linux的apt、yum或dnf,Windows的VisualC Redistributable)安裝缺失的依賴庫,例如sudoaptinstalllibmysqlclient-dev;2.仔細檢查錯誤信息,逐一解決複雜的依賴關係;3.確保包管理器源配置正確,能訪問網絡;4.對於Windows,下載安裝必要的運行庫。養成閱讀官方文檔和善用搜索引擎的習慣,能有效解決問題。

重新用於會話管理:可擴展和可靠的解決方案 重新用於會話管理:可擴展和可靠的解決方案 Apr 04, 2025 am 12:20 AM

使用Redis進行會話管理可以通過以下步驟實現:1)設置會話數據,使用Redis的哈希類型存儲;2)讀取會話數據,通過會話ID快速訪問;3)更新會話數據,根據用戶行為進行修改;4)設置過期時間,確保數據及時清理。 Redis的高性能和可擴展性使其成為會話管理的理想選擇。

如何針對高負載應用程序優化 MySQL 性能? 如何針對高負載應用程序優化 MySQL 性能? Apr 08, 2025 pm 06:03 PM

MySQL數據庫性能優化指南在資源密集型應用中,MySQL數據庫扮演著至關重要的角色,負責管理海量事務。然而,隨著應用規模的擴大,數據庫性能瓶頸往往成為製約因素。本文將探討一系列行之有效的MySQL性能優化策略,確保您的應用在高負載下依然保持高效響應。我們將結合實際案例,深入講解索引、查詢優化、數據庫設計以及緩存等關鍵技術。 1.數據庫架構設計優化合理的數據庫架構是MySQL性能優化的基石。以下是一些核心原則:選擇合適的數據類型選擇最小的、符合需求的數據類型,既能節省存儲空間,又能提升數據處理速度

Tomcat和IIS有什麼區別? Tomcat和IIS有什麼區別? Apr 07, 2025 am 12:14 AM

Tomcat和IIS的主要區別在於設計目標和功能:1.Tomcat是開源的Servlet容器,適用於JavaWeb應用。 2.IIS由微軟開發,主要用於ASP.NET應用,集成在Windows系統中。選擇時需考慮項目需求和技術棧。

See all articles