使用 PCF Tanzu Gemfire 服务 Springboot 微服务使用 Gemfire 缓存时遇到问题

Facing issue with using Gemfire cache using PCF Tanzu Gemfire service Springboot microservice

我正在开发 Springboot REST 微服务。在分区区域类型上执行清除区域时遇到问题。如何配置 Gemfire 缓存,以便我的客户端能够在启动时向服务器添加区域。此外,我正在考虑公开 API 以显式驱逐缓存。我们有办法做到吗?我们现在已经实现了 Redis 缓存,但我们想切换到 gemfire,因为它提供了很好的 GUI 来使用 PULSE 跟踪区域和数据。 问题:

  1. Gemfire 客户端配置以在启动时添加区域以跨微服务使用。
  2. 如何显式驱逐。想一个API.

代码:

@SpringBootApplication
@EnableCacheDefinedRegions
public class CloudcachePizzaStoreApplication

问题(如 GEODE-788, GEODE-7665, GEODE-7666, GEODE-7670, GEODE-7672 and GEODE-7676 中所述)是 GemFire/Geode 不支持 Region.clear() PARTITION 区域(还)。

当您在托管应用程序组件上声明 @CacheEvent(allEntries = true) annotation/attribute 时,例如...

@Component
class MyCacheableSpringManagedApplicationComponent {

  @CacheEvict(allEntries = true)
  void nukeAndPave() {
      repository.deleteAll();
      // ...
  }
}

这实际上调用了 Region.clear()(参见 here)。此行为适用于 REPLICATELOCAL Regions,但不适用于 PARTITION Regions,鉴于众多GemFire/Geode 问题。不过,它目前是一个 WIP。

Apache Geode 和 VMware Tanzu (Pivotal) GemFire 的 Spring 数据中曾经(部分地,现在仍然)打算处理缓存清除操作。

https://jira.spring.io/browse/DATAGEODE-265

但是,在上述 GEODE ​​JIRA 票证得到整理之前,这将被搁置。