使用 Spring Session 存储 HTTP 会话数据
在本单元中,了解如何使用 Azure Cache for Redis 通过 Spring Session 存储 HTTP 会话数据。
HTTP 会话
HTTP 会话在请求之间存储用户数据(通常是安全信息)。 HTTP 会话还可以存储应用程序状态,或缓存经常访问的用户数据。 由于 HTTP 会话存储在服务器上,因此可能会出现可伸缩性问题。 当应用程序横向扩展到更多节点时,需要复制会话。
自 servlet 早期以来,Java 中已提供 HTTP 会话,JavaServer 人脸(JSF)等技术大量使用这些会话。 缩放 HTTP 会话一直是个问题,并且所有主要的 Java 应用程序服务器中都存在会话复制机制。
一个问题是 HTTP 会话复制机制不是标准化的,而是依赖于特定于每个应用程序服务器的 API。 此设置可能会导致可移植性问题。
春季会议
Spring Session 是一个 Spring 子项目,它提供用于配置 HTTP 会话复制的通用解决方案。 Spring Session 支持 Redis 作为多个后端选项之一。 Spring Session 将复制 Redis 中的所有会话数据,因此当应用程序横向扩展时,每个节点都有权访问用户会话。
Spring Session 配置类似于以前的 Spring Data 配置,并演示了另一种建议的 Redis 使用方案。
将 Spring Session 与 Redis 配合使用
某些配置与 Spring Data Redis 的配置相同,并且对于这两种解决方案,只需执行一次。 与 Spring Data 配置一样,通常使用 Spring Initializr 并执行以下主要任务:
- 将 Spring Session Redis 库添加到应用程序。
- 配置 application.yml 文件以连接到 Azure Redis 缓存实例。
- 使用 Java 的 HTTP 会话机制来存储和检索数据。
转到下一个单元来实现此配置。