首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Spring从Gemfire获取所有区域-数据-gemfire

用Spring从Gemfire获取所有区域-数据-gemfire
EN

Stack Overflow用户
提问于 2015-08-26 13:27:01
回答 1查看 951关注 0票数 0

我正在开发一个非常简单的仪表板,用于为测试目的清除Gemfire区域。我这样做主要是为了让测试人员自己做这件事。

我想动态地获取当前可用的区域名称以清除。

我正在搜索spring-data-gemfire文档,但我无法找到获取所有区域名称的方法。

到目前为止,我得到的最好提示是<gfe:auto-region-lookup/>,但我想我仍然需要一个带有所有区域名称的cache.xml,而且我也不知道如何动态显示它们的名称,以及如何从这些区域删除所有数据。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-08-26 16:22:39

<gfe:auto-region-lookup>旨在为在Spring上下文之外显式创建的所有GemFire区域(即cache.xml或使用GemFire的相对新的基于集群的配置服务)在Spring ApplicationContext中自动创建bean。但是,开发人员必须使用和/或启用这些机制来使用auto-region-lookup功能。

要获得GemFire“集群”中所有区域名称的列表,您需要类似于Gfsh的'list region'命令,该命令使用函数来收集GemFire (缓存)集群中定义的所有区域。

请注意,成员可以定义不同的区域,即参与集群的所有成员不必定义相同的区域。在大多数情况下,他们这样做,因为它是有益于复制和HA的目的。尽管如此,一些成员可能只定义该成员将使用的本地区域。

要从列表中清除区域,再次需要使用GemFire Function来“清除”集群中查询代理成员当前未定义的其他区域。

当然,如果您只想清除定义在成员本身上的区域,那么这个问题非常简单.

代码语言:javascript
复制
@Autowired
private Cache gemfireCache;
...

public void clearRegions() {
  for (Region rootRegion : gemfireCache.rootRegions()) {
    for (Region subRegion : rootRegion.subregions(true)) {
      subRegion.clear();
    }
    rootRegion.clear());
  }
}

有关更多细节,请参见rootRegions()分区域(递归:布尔)

注意,GemFire的Cache接口实现了RegionService接口。

希望这能有所帮助。

干杯!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32227976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档