Spring Boot 2精髓 - (15) Session

spring boot

水平扩展实现

Spring Boot 应用水平扩展有两个问题需要解决:

  • 将用户的请求派发到水平部署的任意一台SpringBoot应用,通常用一个反向代理服务器来实现

  • 会话管理
    共享会话信息, 有两种方式可以实现

    • 复制会话: Web服务器通常都支持Session复制,一台应用的会话信息改变将立刻复制到其他集群的Web服务器上
    • 集中式会话: 所有Web服务器都共享一个会话,会话信息通常存放在一台服务器上,本章使用Redis服务器来存放会话

Spring Session

介绍

Spring Boot 配置很容易切换到不同的Session管理方式,总共有以下几种:

  • Redis, Session数据存放Redis
  • JDBC,会话数据存放在数据库中,默认情况下SPRING_SESSION表存放Session基本信息,如sessionId、创建时间、最后一次访问时间等,SPRING_SESSION_ATTRIBUTES存放了session数据,ATTRIBUTE_NAME列保存了Session的Key, ATTRIBUTE_BYTES列以字节形式保存了Session的Value, Spring Session 会自动创建这两张表。
  • Hazelcast, Session数据存放到 Hazeleast
  • None,禁用 Spring Session 功能

通过配置属性spring.session.store-type来指定Session的存储方式

使用 Redis

Powered by Hexo and Hexo-theme-hiker

Copyright © 2013 - 2021 朝着牛逼的道路一路狂奔 All Rights Reserved.

访客数 : | 访问量 :