首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Redis 共享 Tomcat 集群 Session 實現零宕機部署方案

     編輯:Java 綜合教學

Redis 共享 Tomcat 集群 Session 實現零宕機部署

場景與目標

新代碼推送生產,要求零宕機、用戶零感知。採用 Nginx 負載均衡 + Tomcat 集群,滾動升級節點。

核心難題

摘掉節點時,用戶 Session 不能丟失。解決方案:Session 外部化存儲到 Redis。

架構示例

  • 1 台 Nginx(非粘性會話,Round-robin)
  • 2 台 Tomcat(端口 8080/8081)
  • Redis 存儲所有 Session

實施步驟

  1. 安裝 Nginx:rpm -ivh nginx-1.4.2-1.el6.ngx.x86_64.rpm,配置 upstream tomcat 指向兩實例,location / { proxy_pass https://tomcat; },重啟。
  2. 安裝兩 Tomcat:修改第二個實例端口避免衝突。
  3. 安裝 Redis:步驟省略。
  4. 配置 Tomcat Session 寫 Redis:使用 tomcat-redis-session-manager。需下載源碼升級依賴(commons-pool2、jedis)重打包,將 jar 放入各實例 lib 目錄。修改 context.xml:
    <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
             host="localhost" port="6379" database="0" maxInactiveInterval="60" />
    
  5. 重啟 Tomcat,驗證 Redis 確有 Session 數據。摘掉/恢復節點時用戶無感知。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved