1. 程式人生 > >tomcat叢集redis配置session共享

tomcat叢集redis配置session共享

針對之前的nginx+tomcat的負載均衡機制,因為會出現session丟失的問題,特研究了下redissession共享;下載JDK7tomcat7以備後續測試;

這裡要對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系列來執行的,所以必須保持一致;

二、下載安裝redislinxu版本)

解壓:

tar –zxvfredis-2.4.6.tar.gz

編譯

需要說明的事,redis的安裝非常簡單,已經有現成的Makefile檔案,直接執行make命令即可。

make

make install

安裝成功後直接啟動redisredis-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

;將這3個包放入tomcat\lib目錄下;

四、配置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負載tomcatredis解決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+redissession共享實現

什麼是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共享問題