【集群分布式问题】session共享问题及解决方案

【集群分布式问题】session共享问题及解决方案文章目录一 session 共享问题还原二 解决方案 1 Nginx 的 IP Hash 策略 可以使 2 Session 复制 不推荐 3 Session 共享 Session 集中存储 推荐 一 session 共享问题还原以登录为例 比如输入用户名和密码 然后会重定向到另一个界面 刚开始登录请求在节点 1 上 然后第二次业务请求会跑到节点 2 上 因为节点 2 上没有节点 1 上的 session 信息 所以会登录失败 Http 协议是 状态的协议 客户端和服务端在某次会话中产 的数据不会被保留下来 所以第 次请求服务端

一、session共享问题还原

在这里插入图片描述
以登录为例,比如输入用户名和密码,然后会重定向到另一个界面,刚开始登录请求在节点1上,然后第二次业务请求会跑到节点2上,因为节点2上没有节点1上的session信息,所以会登录失败。

二、解决方案

1.Nginx的 IP_Hash 策略(可以使⽤)

  • 配置简单,不⼊侵应⽤,不需要额外修改代码
    缺点:

  • 服务器重启Session丢失
  • 存在单点负载⾼的⻛险
  • 单点故障问题

2. Session复制(不推荐)

  • 不⼊侵应⽤
  • 便于服务器⽔平扩展
  • 能适应各种负载均衡策略
  • 服务器重启或者宕机不会造成Session丢失
    缺点:

  • 性能低
  • 内存消耗
  • 不能存储太多数据,否则数据越多越影响性能
  • 延迟性

3. Session共享,Session集中存储(推荐)

在这里插入图片描述
Session的本质就是缓存,那Session数据为什么不交给专业的缓存中间件呢?⽐如Redis

优点:

  • 能适应各种负载均衡策略
  • 服务器重启或者宕机不会造成Session丢失
  • 扩展能⼒强
  • 适合⼤集群数量使⽤
    缺点:

  • 对应⽤有⼊侵,引⼊了和Redis的交互代码

操作方法

  1. 引入jar
 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> 
  1. 配置redis
spring.redis.database=0 spring.redis.host=127.0.0.1 spring.redis.port=6379 
  1. 添加注解

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217836.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午8:38
下一篇 2026年3月18日 上午8:39


相关推荐

  • Ubuntu修改密码和用户名

    Ubuntu修改密码和用户名​Ubuntu是一个Linux操作系统,修改密码和用户名是有危险的动作,请谨慎修改。一、Ubuntu修改密码和用户名Ubuntu更改密码步骤:1、进入Ubuntu,打开一个终端,输入sudosu转为root用户。注意,必须先转为root用户!!!2、sudopasswduser(user是对应的用户名)3、输入新密码,确认密码。4、修改密码成功,重启,输入新密码进入Ubun…

    2026年4月18日
    4
  • 集合的基本概念

    集合的基本概念我们看到的 听到的 闻到的 触摸到的 想到的各种各样的事物或一些抽象的符号 都可以看做对象 一般的 我们把一些可以确定的不同的对象看成一个整体 就说这个整体是由这些对象的全体构成的集合 构成集合的每个对象叫做这个集合的元素

    2026年3月18日
    2
  • 全局服务器负载均衡(GSLB)简介

    全局服务器负载均衡(GSLB)简介引言在过去的几年中,随着互联网的快速发展和企业应用WEB化,服务器负载均衡(SLB)技术已经不再陌生。服务器负载均衡根据用户数据请求中的4-7层信息将其智能转发到后端少则数台多则成百上千台应用服务器,并且确保根据事先定义的策略选择最佳的服务器进行转发,从而一定程度上解决了应用的可用性、扩展性等问题。但是,随着用户对应用可用性和扩展性需求的进一步增加,越来越多的用户不满足于在单一数据

    2022年6月6日
    576
  • Button和ImageButton[通俗易懂]

    Button和ImageButton

    2022年1月30日
    208
  • 长尾分布(long-tail distribution)和长尾效应「建议收藏」

    长尾分布(long-tail distribution)和长尾效应「建议收藏」长尾分布(long-taildistribution)和长尾效应1、长尾效应作者:赵澈链接:https://www.zhihu.com/question/20027490/answer/20420381来源:知乎长尾效应其实是幂率分布的通俗提法,在物理上也被称为无标度现象,这种现象在自然界与社会生活中都相当地常见,可参考幂律分布_互动百科。里面也提到之所以叫无标度,是因为「系统中个体的尺度相差悬殊,缺乏一个优选的规模」。如下图这般,极少数个体(横轴)对应极高的值(纵轴),而拥有极低值的个体,数

    2025年7月11日
    5
  • IO接口编程[通俗易懂]

    IO接口编程[通俗易懂]IO接口编程作者:毛茏玮/Saint掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a微博:https://weibo.com/5458277467/profile?topnav=1&amp;wvr=6&amp;is_all=1GitHub:github.com/saint-000CSDN:https://me.csdn.net/…

    2022年5月20日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号