集群下使用redis统一session处理

pom依赖(快照版):

          <dependency>
		    <groupId>org.springframework.session</groupId>
		    <artifactId>spring-session</artifactId>
		</dependency>
		<dependency>
		    <groupId>org.springframework.data</groupId>
		    <artifactId>spring-data-redis</artifactId>
		</dependency>
		<dependency>
		    <groupId>biz.paluch.redis</groupId>
		    <artifactId>lettuce</artifactId>
		    <version>5.0.0.Beta1</version>
		</dependency>
		<dependency>
		    <groupId>io.projectreactor</groupId>
		    <artifactId>reactor-core</artifactId>
		    <version>3.0.6.RELEASE</version>
		</dependency>

  RedisSession.java

@EnableRedisHttpSession
@EnableConfigurationProperties(RedisProperties.class)
public class RedisConfiguration {

	@Resource
	private RedisProperties redisProperties;

	@Bean
	public LettuceConnectionFactory connectionFactory() {
		LettuceConnectionFactory factory = new LettuceConnectionFactory();
		factory.setHostName("localhost");
		factory.setPassword("redispassword");
		factory.setDatabase("0");
		factory.setTimeout(5000);
		factory.setPort(6379);
		return factory;
	}

}

  然后在把值放入到HttpSession里面就会被自动放入到redis里面了。在集群下自动达到共享session的功能。

如:

  public ResponseEntity<Object> browseCunAction(@RequestParam("key")String key,@RequestParam("value")String value,HttpSession session) throws Exception {
		session.setAttribute(key, value);
		return ResponseEntity.ok(Collections.singletonMap(key, value));
	}

  

时间: 2024-11-07 08:53:33

集群下使用redis统一session处理的相关文章

在tomcat集群下利用redis实现单点登陆

场景:比如说我们要实现一个集群环境,无非是把多个项目部署到多个tomcat下,然后按照一定的算法,轮询什么的随机访问多个tomcat服务器,但是问题也会有许多,比如说,我们最开始是把登陆人的信息存放到session中,但是如果是集群的情况下,比如我第一次登陆,把信息存放到session里面,但是我第二次访问的时候,访问到了第二台服务器,第二台服务器里面没有session信息,我们还得再登陆一遍,问题显而易见,session数据共享的问题. 解决思路:我们不要把信息存放到服务器的session中,

用redis实现tomcat集群下的session共享

上篇实现了 LINUX中NGINX反向代理下的TOMCAT集群(http://www.cnblogs.com/yuanjava/p/6850764.html) 这次我们在上篇的基础上实现session 共享问题 Nginx机器:192.168.1.108 两台tomcat机器分别是:192.168.1.168 192.168.1.178 一:测试session共享问题 在原index.jsp页面添加如下代码 SessionId:<%= session.getId() %> <% Stri

分布式集群下的Session存储方式窥探

传统的应用服务器,自身实现的session管理是大多是基于单机的,对于大型分布式网站来说,支撑其业务的远远不止一台服务器,而是一个分布式集群,请求在不同的服务器之间跳转.那么,如何保持服务器之前的session同步呢? 分布式环境下,如果一次请求被负载均衡分配到了服务器A,如果按照一般的方式存储session,在A的本地会存储session,如果此次会话没有结束,下一次的请求被负载均衡到了B服务器(或者其他的非A服务器)那么上次的请求的session信息将不再存在.如果不做任何处理的话,用户将出

Nginx集群之基于Redis的WebApi身份验证

目录 1       大概思路... 1 2       Nginx集群之基于Redis的WebApi身份验证... 1 3       Redis数据库... 2 4       Visualbox虚拟机ubuntu下的redis部署... 3 5       编写.NET WebApi的OnAuthorization身份验证... 6 6       编写.NET WebApi的ActionFilterAttribute令牌验证... 8 7       编写.NET WebApi的服务端.

was集群下基于接口分布式架构和开发经验谈

某b项目是我首次采用was环境下架构和开发的手机wap应用,尽管做到了该项目的主程,但对此项目的全面构件依然有不清楚的地方,因此在这里我只能简单的谈谈开发中遇到的问题怎么处理和应对办法. 记得第一天接触这个项目时,只记得些案例代码(不知道那些是对的,那些是错的)似曾相识,但不懂如何动手写下第一个helloword,因其中的基于接口开发的ejb的架构以前根本就没接触过.好了,没办法,于是只有硬着头皮去尝试第一个基于接口开发的ejb的第一个查询方法(呵呵最简单了吧).因为一切都是新的,一没有相对完整

Jenkins集群下的pipeline实战

关于Jenkins集群 在<快速搭建Jenkins集群>一文中,我们借助docker快速搭建了Jenkins集群,今天就在这个集群环境中创建pipeline任务,体验Jenkins集群下的并行任务: 环境信息 整个集群环境一共有三台电脑,信息如下: | 主机名 | IP地址 | 作用 | |--|--|--| | master | 192.168.133.131 | Jenkins集群的master节点,提供web服务 | | agent1 | 192.168.133.132 | Jenkin

8. 集群下的Session管理

本章内容: 1. Sticky Session 2. Session Replication 3. Session Server 一个用户的 Session 信息如果存储在一个服务器上,那么当负载均衡器把用户的下一个请求转发到另一个服务器,由于服务器没有用户的 Session 信息,那么该用户就需要重新进行登录等操作.本章主要介绍如何处理该问题的三种方法. 一.会话保持(粘滞)—Sticky Session 需要配置负载均衡器,使得一个用户的所有请求都路由到同一个服务器,这样就可以把用户的 Se

利用Redis发布订阅完成tomcat集群下的消息通知

博主是刚入职半年的新手,如果有说的不对的地方请各位大佬见谅! 这是博主的第一篇博客,可能排版以及一些描述有不合理的地方还请勿喷,希望大家尽可能的多给我这样的新手一些鼓励让我能在写博客的道路上走下去. 进入正题,首先开发背景 近期公司的一些项目上出现了内存溢出的问题,究其原因是缓存的数据量太大导致jvm内存溢出,产品的架构上比较老所以针对缓存这块,领导叫我去重构移植到Redis中,博主之前并没有学习过Redis以及关于分布式系统的并发问题,所以也是对我的一次挑战,还好没有辜负领导的期望在期望时间之

web集群中经常使用的session同步解决方式及对照

随着站点的功能越来越多,用户量越来越庞大,单节点模式已经严重不能支撑整个系统的正常运作,轻则用户页面訪问时间越来越慢.重则就会导致整个系统瘫痪.这时候 就须要优化或调整眼下的架构,大部分人就会採用各种负载均衡软件比如nginx.hproxy.LVS等,也有的採用分布式的方式把系统依据功能拆分成非常多系统,也有的依据地域 和网络不同来实现訪问不同节点部署的系统.也有的大型高流量.高负载的系统把负载均衡.分布式及依据地域.网络等这些方式都整合在一起来实现系统的正常执行. 採用负载均衡软件是眼下大家採