tomcat叢集redis配置session共享
針對之前的nginx+tomcat的負載均衡機制,因為會出現session丟失的問題,特研究了下redis的session共享;下載JDK7、tomcat7以備後續測試;
這裡要對tomcat-redis-session打包做一下特殊記錄:
上圖中的構建pom.xml。
<?xml version="1.0" encoding="GB2312"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.hik</groupId> <artifactId>tomcat-redis-session</artifactId> <!--<packaging>war</packaging>--> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-catalina</artifactId> <version>7.0.27</version> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.7.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.0</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build> </project>
由於我們的環境都是基於7系列來執行的,所以必須保持一致;
二、下載安裝redis(linxu版本)
解壓:
tar –zxvfredis-2.4.6.tar.gz
編譯
需要說明的事,redis的安裝非常簡單,已經有現成的Makefile檔案,直接執行make命令即可。
make
make install
安裝成功後直接啟動redis:redis-server/etc/redis.conf,如圖
新開視窗redis-cli測試:
Set a 123
Get a 得到123 安裝成功可以使用
三、上邊原始碼自己打包生成tomcat-redis-session.jar包,從網上下載jedis-2.7.2.jar commons-pool2-2.4.1.jar
四、配置tomcat\conf下的context.xml檔案
將以下程式碼新增進context.xml裡邊
<!-- tomcat-redis-session共享配置 --> <ValveclassName="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve"/> <ManagerclassName="com.orangefunction.tomcat.redissessions.RedisSessionManager" host="localhost" port="6379" database="0" maxInactiveInterval="60" />
五、tomcat測試session共享配置
準備兩個tomcat模擬,每個配置都跟上邊一樣,然後
Tomcat18080 webapp/index.jsp修改:<% request.getSession().setAttribute(“a”,”123”);%>
Tomcat28090 webapp/index.jsp 修改:<% out.print(request.getSession().getAttribute(“a”))%>
六、測試整個環境:
伺服器記得先啟動redis!
啟動tomcat1,訪問http://localhost:8080/index.jsp
啟動tomcat2,訪問 http://localhost:8090/index.jsp,可看到頁面顯示123,證明session共享成功。
七、可能會出現的錯誤
Tomcat可能啟動不正常,最大的原因是jar包沒用對應的版本,本人測試可以用的相關jar版本是commons-pool2-2.3,jedis-2.7.2。
tomcat-redis-session-manager-master.jar如果不能用就按文件自己重新打包。如果有其他錯誤(比如java.lang.UnsupportedClassVersionError)
的話就去檢查下啟動指定jdk是否為1.7,
如果報錯xml檔案如果讀取錯誤(Invalid byte 1 of 1-byte UTF-8 sequence)就修改context.xml中 encoding="GB2312"?>,
其他錯誤基本上都跟jar版本和執行環境相關,請認真檢查。
相關推薦
tomcat叢集redis配置session共享
針對之前的nginx+tomcat的負載均衡機制,因為會出現session丟失的問題,特研究了下redis的session共享;下載JDK7、tomcat7以備後續測試; 這裡要對tomcat-redis-session打包做一下特殊記錄: 上圖中的構建pom.xm
(三)配置nginx負載tomcat,redis解決session共享
Nginx ("engine x") 是一個高效能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP伺服器。Nginx是由Igor Sysoev為俄羅斯訪問量第二的Rambler.ru站點開發的。 何為反向代理呢?即以代理伺服器來接受internet上的連線請求,然後將請
tomcat+nginx 分散式叢集 redis實現session共享
一、理解session、cookie首先要明確session和cookie的區別。瀏覽器端 存的是cookie每次瀏覽器發請求到服務端是http 報文頭是會自動加上你的cookie資訊的。服務端拿著使用者的cookie作為key去儲存裡找對應的value(session).同
Tomcat 使用redis實現session共享
測試架構:準備工作:1.安裝nginx nginx.conf的編輯:2.同一臺機器配置兩個tomcat ,修改埠3.修改 tomcat\tomcat8080\apache-tomcat-7.0.86\webapps\ROOT\index.jsp新增:測試統一請求沒有sessi
Nginx+Tomcat搭建叢集,Spring Session+Redis實現Session共享
小夥伴們好久不見!最近略忙,部落格寫的有點少,嗯,要加把勁。OK,今天給大家帶來一個JavaWeb中常用的架構搭建,即Nginx+Tomcat搭建服務叢集,然後通過Spring Session+Redis實現Session共享。 閱讀本文需要有如下知識點:
我的tomcat+redis實現session共享配置之路
2、在myeclipse 新建一個maven專案【maven-archetype-quickstart】 原始檔新建包名com.orangefunction.tomcat.redissessions 講下載下來的java類拷貝到該包之下(這些java類只
tomcat 7 叢集使用 redis 進行session共享
在tomcat的lib目錄下加入以下三個包 commons-pool-1.6.jar 、jedis-2.2.1.jar、 tomcat-redis-session-manager-1.2-tomcat-7.jar csdn下載地址 我在此三個jar的版本下
Linux(CentOS)下Nginx+Tomcat叢集+Redis共享Session搭建
Linux(CentOS7)下Nginx+Tomcat叢集+Redis共享Session搭建版本:CentOS7+Nginx1.12.2+Tomcat7.085+Redis3.2.1+Java71. 下載安裝Nginx(直接解壓就行)a) 安裝Nginxb)修改c
Nginx+Tomcat+Redis實現session共享
linux nginx tomcat redis session 通過Nginx作為前端的負載,把請求分發到後端的Tomcat服務器上,提高並發數;但是單純的通過Nginx的ip_hash負載是很多問題的。只要用戶一切換網絡或者後端Tomcat主機宕機session就失效;架構圖:基本環境
nginx+tomcat集群+redis(memcache)session共享!
coo 1.7 memcache 會話 tomcat7 -- pre 創建 local 常用保持session的方式:1、一些代理(比如nginxIP_hash)1、使用數據庫來存儲Session2、使用Cookie來存儲Session
springboot專案Nginx+Tomcat實現負載均衡結合Redis實現session共享問題
對於分散式使用Nginx+Tomcat實現負載均衡,當同一個使用者登入後,再次訪問可能分發到不同的服務,這樣我們就取不到之前登入session,出現未登入現象。所以我們必須解決共享session問題。 方式一:儲存在資料庫中 , 使用者登入時,把session資訊儲存在資
shiro 在叢集環境下用redis(叢集版)做session共享
如今叢集環境已是伺服器主流,在叢集環境中,session共享一般通過應用伺服器的session複製或者儲存在公用的快取伺服器上,本文主要介紹通過Shiro管理session,並將session快取到redis叢集版中,這樣可以在叢集中使用。 Shiro除了在管理sess
nginx+tomcat+redis完成session共享
本文記錄nginx+redis+tomcat實現session共享的過程 準備兩個tomcat,修改相應的埠 名稱 IP 埠 tomcat版本 JDK tomcat1 10.10.49.23 8080 7.0.40 1.7.0_25 tomcat2 10.10.49.1
分散式叢集Session共享 簡單多tomcat8+redis的session共享實現
什麼是Session/Cookie 使用者使用網站的服務,基本上需要瀏覽器與Web伺服器的多次互動。HTTP協議本身是無狀態的,當用戶的第一次訪問請求結束後,後端伺服器就無法知道下一次來訪問的還是不是上次訪問的使用者。我們需要基於HTTP協議支援會話狀態的機制,
windows下nginx+tomcat叢集,實現session複製共享
兩臺不同伺服器 ip1、ip2。ip1安裝tomcat1,埠8005,8081,8009、nginx,提供nginx外網埠80,ip2安裝tomcat2,埠8006,8082,8010。 1、安裝apach tomcat。 2、安裝ng,下載解壓安裝到ip1,根據需要修改
Shiro與Redis整合,叢集下的session共享
概述 在叢集環境中,session共享一般通過應用伺服器的session複製或者儲存在公用的快取伺服器上,本文主要介紹通過Shiro管理session,並將session快取到redis中,這樣可以在叢集中使用。 Shiro除了在管理session上使用re
tomcat + redis 實現session共享
實現原理很簡單 1、需要幾個包放在tomcat/lib下面 tomcat-redis-session-manager-1.2-tomcat-7-java-7.jar(tomcat7) tomcat-r
apache + tomcat + mod_jk 叢集部署及Session共享 和 遇到的問題
系統 win7 64位 jdk :1.6 64位 java version "1.6.0_45" Java(TM) SE Runtime Environment (build 1.6.0_45-b06) Java HotSpot(TM) 64-Bit Server
細說tomcat之集群session共享方案
eth0 -h 4.0 kernel mage etc 插件 root b- 1. Tomcat Cluster官網:http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.htmlTomcat原生支持的集群方案。 &
spring boot + session+redis解決session共享問題
tar session tail ref href spring pan dream spa 自己沒有親自試過,不過看了下這個例子感覺靠譜,以後做了測試,在加以說明。spring boot + session+redis解決session共享問題