Spring Session for Apache GeodeSpring Session for Apache Geode2.7.0

注意

截至 2022 年底,VMware 宣布 Spring for VMware GemFire 项目正式发布。

虽然这些基于 Spring 的 VMware GemFire 项目是开源的,并且是 Spring for Apache Geode 项目的继承者,但它们并非替代品。VMware GemFire 分支自 Apache Geode 项目,并非开源项目。

不建议开始使用 Spring for Apache Geode 的新项目,而是建议过渡到 Spring for VMware GemFire,请从这里开始。此外,Spring 产品系列还提供了与其他同类会话缓存提供程序的头等舱集成。另请参阅这里

最后请记住,Spring for Apache Geode 项目的维护将持续到 OSS 和商业支持结束。维护仅包括 CVE 和关键修复。不会添加新功能或进行增强。可以在这里查看 Spring Session for Apache Geode 的支持时间表。

概述

Spring Session for Apache Geode (SSDG) 使用 Apache Geode 提供了核心 Spring Session 框架的实现,用于管理用户的 会话 信息。

会话状态通过利用 Spring Data for Apache Geode 存储在 Apache Geode 中。通过与 Apache Geode 集成,您可以在 Spring Boot 应用程序中轻松获得该技术的全部强大功能(强一致性低延迟高可用性弹性 等)。

甚至可以在 Pivotal CloudFoundry 中部署和运行 Spring Boot 应用程序时使用 SSDG,通过使用 Pivotal Cloud Cache(它本身基于 Apache Geode)。

特性

Spring Session for Apache Geode (SSDG) 提供以下特性

  • 使用 Apache Geode 作为后端进行 HTTP 和 WebSocket 会话状态管理。

  • 集群和分布式会话管理 - 提高系统架构的可用性和弹性。

  • 强一致性 - Apache Geode 提供强一致性保证,非常类似于数据库。

  • 自定义过期策略 - 例如,支持固定会话超时。

  • 自定义数据序列化 - 使(HTTP)会话状态可以通过非 Java 序列化 的方式进行序列化,从而放入会话中的应用类无需实现 java.io.Serializable

  • 自定义更改检测 - 您可以决定会话是否“脏”以及在客户端/服务器拓扑中,Spring Boot 应用程序和 Apache Geode 集群之间发送什么(例如,增量)。

  • 强大的发布/订阅机制 - 允许您注册或表达对会话更改的兴趣,使用查询谓词接收更新通知。

将 Spring Session for Apache Geode 添加到您的构建中

Spring Session for Apache Geode 是 Maven BOM(物料清单)的一部分,用于协调核心 Spring Session 项目与此 Apache Geode 扩展之间的版本。每个 BOM 发布都称为一个发布列车,并有一个命名策略,例如:Apple-SR9Bean-SR12Corn-SR6Dragonfruit-SR32020.0.72021.0.42021.1.12021.2.0-M12022.0.0-M1

使用 Maven BOM

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.session</groupId>
      <artifactId>spring-session-bom</artifactId>
      <version>2021.1.1</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

然后,您可以将 BOM 作为依赖项添加到 Spring Boot 应用程序的 Maven POM 文件中

<dependencies>
  <dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-geode</artifactId>
  </dependency>
</dependencies>

使用 Gradle BOM

由于 Gradle 对 Maven BOM 没有头等舱支持,您可以使用 Spring 的 依赖管理插件

从 Gradle 插件门户应用插件(如果需要,请更新版本)

plugins {
  id 'io.spring.dependency-management' version '1.0.11.RELEASE'
}

然后使用它导入 BOM

dependencyManagement {
  imports {
    mavenBom 'org.springframework.session:spring-session-bom:2021.1.1'
  }
}

最后,在项目中添加一个不带版本的依赖项

dependencies {
  compile 'org.springframework.session:spring-session-data-geode'
}

Spring Boot 配置

如果您正在使用 Spring Boot,特别是 Spring Boot for Apache Geode (SBDG),您可以在 Spring Boot 应用程序的 Maven POM 文件中包含 Spring Session for Apache Geode (SSDG) 的 starter

例如

<dependencies>
  <dependency>
    <groupId>org.springframework.geode</groupId>
    <artifactId>spring-geode-starter-session</artifactId>
    <version>1.6.3.RELEASE</version>
  </dependency>
</dependencies>

有关更多详细信息,请参阅 SBDG 版本兼容性矩阵

Spring Initializr

快速启动您的项目

领先一步

VMware 提供培训和认证,助您快速进步。

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部