我正在尝试使用 gemfire-8.2.11.jar 中可用的 API 方法创建 gemfire 区域。为此,我创建了一个 spring boot 应用程序,在这里我使用代码创建动态 gemfire 区域,当我的应用程序启动时,它将连接到 gemfire 定位器并创建服务器。之后,gemfire 区域正在创建,使用命令提示符签入 gemfire 服务器。这里的问题是,如果我关闭我的应用程序,区域也会继续运行,这意味着区域名称不会持续存在(不更新 cluster.xml 中的区域详细信息)。这意味着临时区域正在内存中创建。请任何人都可以帮助如何使这些区域在语法上保持不变。我需要将任何属性设置为 CashFactory 吗?根据下面给出的链接,按照 gemfire 文档进行编码。http://gemfire82.docs.pivotal.io/docs-gemfire/latest/basic_config/data_regions/create_a_region_with_API.html Getting Cache factory object Cache cache = new CacheFactory().set("name", "TestServer") .set("locators","localhost[10334]") .set("log-level", "config") .create(); RegionFactory<Object, Object> rf = cache.createRegionFactory(RegionShortcut.REPLICATE); rf.setCacheLoader(new TestCacheLoader()); rf.setCacheWriter(new TestCacheWriter()); Region<Object, Object> createdRegion = rf.create("Test"); Need to persist grammatically created regions with my application.
1 回答
UYOU
TA贡献1878条经验 获得超4个赞
为了使区域配置在重新启动时保持不变,您需要使用集群配置服务,请查看配置和运行集群以获取更多详细信息。不幸的是,在 GemFire 8.2.X 中没有公共 API 可以手动使用此配置服务(修改集群配置的唯一方法是通过内部方法或在集群离线时手动编辑配置 xml 文件),因此您唯一的选择是使用宝石火壳。较新版本的 GemFire 也有此限制,但目前正在努力通过 API 直接配置此功能(请查看集群管理服务以获取更多详细信息)。
附带说明一下,考虑到您已经在使用Spring Boot,Spring Boot for Apache Geode 和 Pivotal GemFire在可用性和可配置性方面做出了巨大改进,它当然可以为您提供更大的灵活性并帮助您实现目标(特别是@EnableClusterConfiguration
注解)。
希望这可以帮助。干杯。
添加回答
举报
0/150
提交
取消