领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多在 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 是 Maven BOM(物料清单)的一部分,用于协调核心 Spring Session 项目和此 Apache Geode 扩展之间的版本。每个 BOM 版本称为一个发布列车,并具有命名策略,例如:Apple-SR9
、Bean-SR12
、Corn-SR6
、Dragonfruit-SR3
、2020.0.7
、2021.0.4
、2021.1.1
、2021.2.0-M1
和 2022.0.0-M1
。
<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 不原生支持 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,特别是 用于 Apache Geode 的 Spring Boot(SBDG),您可以在 Spring Boot 应用程序的 Maven POM 文件中包含用于 Apache Geode 的 Spring Session(SSDG)的 **启动器**。
例如
<dependencies>
<dependency>
<groupId>org.springframework.geode</groupId>
<artifactId>spring-geode-starter-session</artifactId>
<version>1.6.3.RELEASE</version>
</dependency>
</dependencies>
有关更多详细信息,请参阅 SBDG 版本兼容性矩阵。
使用 Spring Initializr 启动您的应用程序。