千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  分布式Session实战一览

分布式Session实战一览

来源:千锋教育
发布人:lxl
时间: 2023-03-13 11:30:14

分布式Session实战一览

  一. 背景

  为什么要处理session?

  这个问题想必大多数朋友都知道,在搭建完集群或者分布式环境之后,如果不做任何处理的话,网站将频繁的出现用户未登录的现象。比如:集群中有A、B两台服务器,用户第一次访问网站时,Nginx将用户请求分发到A服务器,这时A服务器给用户创建了一个Session,当用户第二次访问网站时,假设Nginx将用户请求分发到了B服务器上,而这时B服务器并不存在用户的Session,所以就会出现用户未登录的情况,这对用户来说是不可忍受的。

  所以我们在搭建集群/分布式环境之后,必须考虑的一个问题就是用户访问产生的session如何处理,即session的共享机制

  解决方案

  我们将处理Session的方式大致分为三种:

  Session保持(也有人叫黏性Session)

  Session复制

  Session共享(SpringSession集成Redis)

  二. Spring-Session

  spring-seesion可以解决分布式 session 的共享问题。

  1、介绍

  Spring Session 是 Spring 的项目之一,GitHub地址:https://github.com/spring-pro。

  Spring Session 提供了一套创建和管理 Servlet HttpSession 的完美方案。

  2、功能

  spring Session 提供了 API 和实现,用于管理用户的 Session 信息。除此之外,它还提供了如下特性:

  •   将 session 所保存的状态卸载到特定的外部 session 存储汇总,如 Redis 中,他们能够以独立于应用服务器的方式提供高质量的集群。
  •   控制 sessionid 如何在客户端和服务器之间进行交换,这样的话就能很容易地编写 Restful API ,因为它可以从 HTTP 头信息中获取 sessionid ,而不必再依赖于 cookie。
  •   在非 Web 请求的处理代码中,能够访问 session 数据,比如在 JMS 消息的处理代码中。
  •   支持每个浏览器上使用多个 session,从而能够很容易地构建更加丰富的终端用户体验。
  •   当用户使用 WebSocket 发送请求的时候,能够保持 HttpSession 处于活跃状态。

  3、依赖

分布式Session实战一览

  4、入口类或Config

分布式Session实战一览

  5、测试

分布式Session实战一览

  三. 小结

  分别启动两个微服务项目。发现测试运行。

  springboot配置session共享是非常方便的,只需要EnableRedisHttpSession注解即可。

  1、解读

分布式Session实战一览

  以上就是分布式Session解决方案.


声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

java的输入语句—— Scanner类

2023-05-04

java数据库操作常识事务的四大特性

2023-05-04

DML数据操作之增加或删除数据

2023-05-04

最新文章NEW

socket是什么?有什么作用?

2023-05-04

Java常量定义是什么

2023-04-28

一分钟带你学多线程

2023-04-28

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>