spring-session之5 redis集群配置步骤总结

原创
2016/10/14 12:23
阅读数 393

spring-session之5 redis集群配置步骤总结

前文,我们讲了那么多,都是一步一步调试过来的,为了更好的前进,现在我们先总结下配置步骤

好,今天的目标是:

  1. 总结配置步骤

简单四步,开始 spring-session redis 配置人生

1. pom.xml 添加 jar依赖


<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	....

	<properties>
		<version.spring-session>1.2.2.RELEASE</version.spring-session>
		<!--不兼容 1.7.4.RELEASE -->
		<version.spring-data-redis>1.7.1.RELEASE</version.spring-data-redis>

	</properties>

	<dependencies>

		....

		<dependency>
			<groupId>org.springframework.session</groupId>
			<artifactId>spring-session</artifactId>
			<version>${version.spring-session}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.session</groupId>
			<artifactId>spring-session-data-redis</artifactId>
			<version>${version.spring-session}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-redis</artifactId>
			<version>${version.spring-data-redis}</version>
		</dependency> 

		....

	</dependencies>

</project>

2. web.xml 添加 springSessionRepositoryFilter 配置

	
	<?xml version="1.0" encoding="UTF-8"?>
	<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
	
		...
	
		<!-- spring-session config -->
		<context-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>
				classpath*:spring-session-cluster.xml
			</param-value>
		</context-param>
	
		<!-- 这个filter 要放在第一个 -->
		<filter>
			<filter-name>springSessionRepositoryFilter</filter-name>
			<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
		</filter>
		<filter-mapping>
			<filter-name>springSessionRepositoryFilter</filter-name>
			<url-pattern>/*</url-pattern>
			<dispatcher>REQUEST</dispatcher>
			<dispatcher>ERROR</dispatcher>
		</filter-mapping>
		...
	</web-app>


3. spring-session-cluster.xml


	<?xml version="1.0" encoding="UTF-8"?>
	<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
		xmlns:p="http://www.springframework.org/schema/p" xmlns:util="http://www.springframework.org/schema/util"
		xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
			http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
			http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd	
			">
	
		<context:annotation-config />
	
		<util:properties id="redis" location="classpath:redis-cluster.properties"></util:properties>
	
		<!-- RedisHttpSessionConfiguration -->
		<bean class="org.springframework.session.data.redis.config.annotation.web.http.RedisHttpSessionConfiguration" />
	
		<!--JedisConnectionFactory -->
		<bean class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
			<constructor-arg index="0">
				<!-- since spring-data-redis 1.7 -->
				<bean class="org.springframework.data.redis.connection.RedisClusterConfiguration">
					<constructor-arg index="0">
						<set>
							<value>#{redis['redis.redisClusterConfiguration.clusters']}</value>
						</set>
					</constructor-arg>
	
					<!--
						用于 redis.clients.jedis.JedisCluster.JedisCluster(Set<HostAndPort>, int, int, GenericObjectPoolConfig) 第三个参数 maxRedirections
						默认值是5
						一般当此值设置过大时,容易报:Too many Cluster redirections
					-->
					<property name="maxRedirects" value="#{redis['redis.redisClusterConfiguration.maxRedirects']}" />
				</bean>
			</constructor-arg>
	
			<constructor-arg index="1">
				<bean class="redis.clients.jedis.JedisPoolConfig">
					<property name="maxIdle" value="#{redis['redis.jedisPoolConfig.MaxIdle']}" />
					<property name="testOnBorrow" value="#{redis['redis.jedisPoolConfig.testOnBorrow']}" />
					<property name="testOnReturn" value="#{redis['redis.jedisPoolConfig.testOnReturn']}" />
	
					<!-- 新版jedis 不支持这个参数了 -->
					<!-- <property name="maxWait" value="#{redis['redis.jedisPoolConfig.MaxWait']}" /> -->
					<!-- <property name="maxActive" value="#{redis['redis.jedisPoolConfig.MaxActive']}" /> -->
				</bean>
			</constructor-arg>
		</bean>
	
	</beans>

4. redis-cluster.properties

	
	#############for org.springframework.data.redis.connection.RedisClusterConfiguration###################
	#只需要配置 master
	#理论上只需要配置一个节点即可,配置多个是为了防止单个节点挂掉,
	redis.redisClusterConfiguration.clusters=10.88.21.31:10000,10.88.22.25:10000,10.88.21.31:10001
	
	#用于 redis.clients.jedis.JedisCluster.JedisCluster(Set<HostAndPort>, int, int, GenericObjectPoolConfig) 第三个参数 maxRedirections
	#默认值是5
	#一般当此值设置过大时,容易报:Too many Cluster redirections
	redis.redisClusterConfiguration.maxRedirects=3
	
	###########for redis.clients.jedis.JedisPoolConfig##############################
	
	redis.jedisPoolConfig.MaxIdle=60000
	redis.jedisPoolConfig.testOnBorrow=true
	redis.jedisPoolConfig.testOnReturn=true
	
	#新版jedis 不支持这个参数了
	#redis.jedisPoolConfig.MaxActive=50
	#redis.jedisPoolConfig.MaxWait=5000
	

简单四步,开始 spring-session redis 配置人生

--to be continued

展开阅读全文
打赏
0
0 收藏
分享
加载中
写的不错,总结的很清晰。设置session失效时候,redis集群是否会同步,tomcat集群中其它服务器是否知道
2016/12/03 01:09
回复
举报
更多评论
打赏
1 评论
0 收藏
0
分享
返回顶部
顶部