分布式 session

这篇具有很好参考价值的文章主要介绍了分布式 session。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

分布式 session

种 session 的时候需要注意范围,也就是 cookie.domain

比如两个域名:a.heo.com,b.heo.com。如果要共享 cookie,可以种一个更高层的公共域名,比如 heo.com。

当服务器 A (localhost:8080)登录用户,然后请求发到服务器 B(localhost:8081),那么结果请求 B 时,B 还会作出相应吗?这就需要考虑到分布式 session。

当用户在 A 登录,所以 session(用户登录信息)存在了 A 上,然后因为 B 没有用户信息,所以不认识用户,也做不出正确的响应。

分布式 session,分布式

解决方案:共享存储 ,而不是把数据放到单台服务器的内存中。

Session 共享实现Redis

如何共享存储?

  1. Redis(基于内存的 K / V 数据库)此处选择 Redis,因为用户信息读取 / 是否登录的判断极其频繁 ,Redis 基于内存,读写性能很高,简单的数据单机 (qps 5w - 10w)。
  2. MySQL
  3. 文件服务器 ceph

redis 管理工具可以使用 quickredis。

使用方法

  1. 引入 redis,能够操作 redis:
<!-- redis -->
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>2.6.4</version>
</dependency>
  1. 引入 spring-session 和 redis 的整合,自动将 session 存储到 redis 中:
<!-- session-data-redis -->
<!-- https://mvnrepository.com/artifact/org.springframework.session/spring-session-data-redis -->
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
<version>2.6.3</version>
</dependency>
  1. 修改 spring-session 存储配置 spring.session.store-type。默认是 none,表示存储在单台服务器 。store-type: redis,表示从 redis 读写 session。
spring:
  application:
    name: match-mate
  session:
    timeout: 86400
    store-type: redis
  redis:
    port: 6379
    host: localhost
    database: 0
  1. 测试结果

为了测试结果,我们可以用不同的端口启动我们的后端项目。一,idea在8080端口启动。二,打包后再8081端口启动。

分布式 session,分布式

8080端口:

分布式 session,分布式

8081端口:

分布式 session,分布式

成功携带8080端口登录获得的用户信息(session),来请求响应8081端口的接口。

查看 redis 0号库 成功存储 session。文章来源地址https://www.toymoban.com/news/detail-815125.html

到了这里,关于分布式 session的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式集群下WebSocket Session共享解决方案

    接上一篇 SpringBoot集成WebSocket进行消息主动推送 分布式集群下WebSocket Session共享解决方案 在实现中需要解决的类变量有两个 其中online可以用Redis实现存储 Session无法采用Redis进行存储, 因为不能对Session进行序列化 由于session无法实现序列化,不能存储到redis这些中间存储里面,

    2024年02月12日
    浏览(52)
  • cookie和session的区别,分布式环境怎么保存用户状态

    1、cookie数据存放在客户的浏览器上,session数据放在服务器上。 2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。 3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方

    2024年02月13日
    浏览(48)
  • PHP实践:分布式场景下的Session共享解决方案实现

    🏆作者简介,黑夜开发者,全栈领域新星创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于PHP专栏:PHP进阶实战教程。 🏆另有专栏PHP入门基础教程,希望各位大佬

    2024年02月13日
    浏览(34)
  • 微服务架构-服务网关(Gateway)-权限认证(分布式session替代方案)

    前面我们了解了Gateway组件的过滤器,这一节我们就探讨一下Gateway在分布式环境中的一个具体用例-用户鉴权。 从我们开始学JavaEE的时候,就被洗脑式灌输了一种权限验证的标准做法,那就是将用户的登录状态保存到HttpSession中,比如在登录成功后保存一对key-value值到session,

    2024年02月16日
    浏览(44)
  • Gin框架: Cookie和Session在单体架构和分布式架构下的应用

    Gin 中单一Cookie的应用 1 )路由处理 2 ) 控制器处理 设置cookie时,设置了两个不同过期时间的cookie 5s 后第一个cookie 自动丢失 访问 /delcookie 路由,第二个路由被主动删除 HTTP 是无状态协议,当你浏览了一个页面 然后转到同一个网站的另一个页面,服务器无法认识到这是同一个

    2024年02月22日
    浏览(47)
  • 【业务功能篇96】微服务-springcloud-springboot-认证服务-登录注册功能-Auth2.0-分布式session

      通过最基础的登录操作来完成登录处理 登录页面处理 认证服务的处理 会员中心的认证逻辑 service中的具体认证处理   OAuth2.0是OAuth协议的延续版本,但不向前兼容OAuth 1.0(即完全废止了OAuth1.0)。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商

    2024年02月09日
    浏览(54)
  • 【分布式】分布式锁

    单机多线程: 在 Java 中,我们通常使用 ReetrantLock 类、synchronized 这类 本地锁 来控制一个 JVM 进程内的多个线程对本地共享资源的访问 分布式系统: 不同的服务/客户端通常运行在独立的 JVM 进程上。如果 多个 JVM 进程共享同一份资源 的话,使用本地锁就没办法实现资

    2024年02月14日
    浏览(48)
  • 分布式系统中的分布式链路追踪与分布式调用链路

    本文分享自天翼云开发者社区《分布式系统中的分布式链路追踪与分布式调用链路》,作者:c****w 在分布式系统中,由于服务间的调用关系复杂,需要实现分布式链路追踪来跟踪请求在各个服务中的调用路径和时间消耗。这对问题排查和性能监控都很重要。 常用的分布式链

    2024年01月19日
    浏览(55)
  • 【分布式】分布式ID

    分布式场景下,一张表可能分散到多个数据结点上。因此需要一些分布式ID的解决方案。 分布式ID需要有几个特点: 全局唯一(必要) :在多个库的主键放在一起也不会重复 有序(必要) :避免频繁触发索引重建 信息安全 :ID连续,可以根据订单编号计算一天的单量,造成

    2024年02月07日
    浏览(49)
  • 【分布式】分布式存储架构

    说到分布式存储,我们先来看一下传统的存储是怎么个样子。 传统的存储也称为集中式存储, 从概念上可以看出来是具有集中性的,也就是整个存储是集中在一个系统中的,但集中式存储并不是一个单独的设备,是集中在一套系统当中的多个设备,比如下图中的 EMC 存储就需

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包