1.为什么要有session共享

在我们系统使用中,一般都是一处登录,处处使用,但是如果多台服务器时,我们的session无法跨域请求,导致一处登录,只能在当前服务器登录

2.session原理、

3.解决方案

3.1 session复制

在服务器中设置修改配置,使每一个的服务器的session都复制到其他服务器,让每一个服务器都拥有所以的session

优点:实现简单,只需要修改web-server(tomcat)的配置让所有session复制到其他服务器

缺点:session大量进行同步, 占用网络带宽,提高服务器压力,无法进行大量服务器横向扩展

3.2 session将cookie存放在客户端中

通过请求将session存放在cookie中,每次请求将请求携带cookie中全部的信息

优点:服务器不需要存储session,用户保存自己的session到cookie中,节省服务器资源

缺点:携带用户的所有cookie资源,浪费网络带宽

长度有限制4k,不能存储大量信息

存放信息在客户端,会被篡改

3.3 hash一致性

这是我们常用到的一种解决方案,可以使用nginx根据ip进行转发,让指定的用户转发到指定的服务器中。

优点:支持负载均衡,可以水平扩展,只需要修改nginx的配置就可以很方便的实现

缺点:session还是存在服务器中,浪费资源,如果服务器出现问题就会丢失数据。

3.4 统一存储

可以将session存放在数据库或者非关系型数据库中,无论存放或者取用都在数据库中

优点:没有安全隐患,可以水平扩展,服务器宕机不会丢失数据

缺点:相较于内存处理,使用redis或者数据库存取会慢一些,需要修改代码才可以使用getsession修改为redis查询。

增加了一次网络IO,加大了服务器和数据库压力

tips:这种方式可以使用springSession解决这些缺点

分布式session共享问题相关推荐

  1. Spring Boot(十一)Redis集成从Docker安装到分布式Session共享

    2019独角兽企业重金招聘Python工程师标准>>> 一.简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并 ...

  2. 分布式Session共享解决方案

    转载自 分布式Session共享解决方案 Session是服务器用来保存用户操作的一系列会话信息,由Web容器进行管理.单机情况下,不存在Session共享的情况,分布式情况下,如果不进行Sessio ...

  3. 分布式Session共享和单点登录实现

    文章目录 基于Session的身份认证 简介 实现 分布式Session共享 简介 实现 单点登陆 简介 实现过程 总结 基于Session的身份认证 简介 对于一个Web应用,客户端每次请求时,服务 ...

  4. 分布式Session共享的4类技术方案,与优劣势比较

    分布式Session共享的4类技术方案,与优劣势比较 什么是session 什么是session一致性问题? 分布式session Session一致性解决方案 1.什么是session 服务器为每个 ...

  5. shiro分布式session共享

    当我们开发的程序需要跑在多个tomcat容器或者多台机器上时,shiro的默认session存储就不能满足我们的需求了,其中shiro默认的session是存储在运行jvm内存中的,使用的Abstra ...

  6. java redis实现session共享_redis实现分布式session共享

    在讲解redis分布式session共享之前,我们先聊聊tomcat中session管理机制,包括:请求过程中session操作,sessionid解析过程,servlet获取session流程,以及 ...

  7. 分布式Session共享(二):tomcat+memcached实现session共享 - 萝卜兔子 - 博客园

    分布式Session共享(二):tomcat+memcached实现session共享 - 萝卜兔子 - 博客园 http://www.cnblogs.com/notDog/p/5341219.htm ...

  8. java分布式会话redis_详解springboot中redis的使用和分布式session共享问题

    对于分布式使用Nginx+Tomcat实现负载均衡,最常用的均衡算法有IP_Hash.轮训.根据权重.随机等.不管对于哪一种负载均衡算法,由于Nginx对不同的请求分发到某一个Tomcat,Tomca ...

  9. Spring Session + Redis实现分布式Session共享

    2019独角兽企业重金招聘Python工程师标准>>> 通常情况下,Tomcat.Jetty等Servlet容器,会默认将Session保存在内存中.如果是单个服务器实例的应用,将S ...

  10. SpringBoot 分布式Session共享

    一.在分布式开发时Nginx负载均衡时传统做法是 把session手动存到redis中 1.常用做法redis 客户端发起一个请求,这个请求到达nginx上之后被,nginx转发给tomcatA上,然 ...

最新文章

  1. 阿里云服务器常见用语
  2. android功能导航布局,安卓9.0新功能 屏幕旋转将与导航栏同窗
  3. RocketMQ性能压测分析(转载)
  4. ClickHouse 源码阅读 —— SQL的前世今生
  5. 汇编怎么从内存地址写入连续的数字_汇编语言 第一章 基础知识
  6. Java学习-Overload和Override的区别
  7. php加skplayer,织梦dedecms怎么整合添加ckplayer播放器支持flv,mp4等播放功能
  8. Unity3D 显示FPS
  9. ubuntu 的挂起与休眠
  10. 华美天气(数据来源:和风天气 API)
  11. Time::HiRes, sleep(), time()
  12. 查看树莓派3 WiFi连接速度
  13. WM_PIANT消息与窗口重画
  14. #有关汇编语言的org指令(许多不为人知的故事):
  15. python3实现PAT乙级算法题库全集
  16. [W pthreadpool-cpp.cc:90] Warning:Leaking Caffe2 thread-pool after fork.(function pthreadpool)
  17. unity网络实战开发(丛林战争)-正式开发阶段(018-声音管理器模块的完善)
  18. 如何像学霸一样高效学习?
  19. 汽车零部件电磁兼容整改案例解析
  20. fiddler模拟进行接口测试

热门文章

  1. Python+Vue计算机毕业设计防SQL注入机制的在线音乐试听分享网站kf40t(源码+程序+LW+部署)
  2. 大家普遍使用的网站的bug等问题
  3. 最全的Go开发教程,超详细哦
  4. Mellel 4 for Mac(文字编辑处理软件)
  5. strut2中使用ajax主题时出现 template/ajax/head.ftl. 错误的解决办法
  6. 学习微信小程序踩过的坑
  7. 最近看了王小帅的《左右》,大力推荐
  8. php basename读取中文,php basename处理中文的问题
  9. Ubuntu下安装取色器
  10. Qt调用虚拟键盘(软键盘)