首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GemFire -弹簧启动配置

GemFire -弹簧启动配置
EN

Stack Overflow用户
提问于 2017-01-13 06:37:24
回答 2查看 3.6K关注 0票数 1

我正在从事一个需要关键GemFire的项目。我无法找到关于如何使用Spring配置gemFire的适当教程。

我已经创建了一个分区区域,我也想配置定位器,但是我只需要服务器端配置,因为客户端是由其他人处理的。

我对关键的GemFire完全陌生,真的很困惑。我尝试过创建一个cache.xml,但后来不知怎么创建了一个cache.out.xml,并且存在许多问题。

EN

回答 2

Stack Overflow用户

发布于 2017-01-13 23:45:37

@Priyanka-

最好的起点是spring.io上的指南。具体来说,看看.

"用GemFire访问数据

还有..。

"用GemFire缓存数据“还有..。

"使用REST访问GemFire数据

然而,这些指南主要集中在“客户端”应用程序关注点、“数据访问”(超过REST)、“缓存”等方面。

不过,您可以使用Spring (甚至在Spring应用程序中)来配置GemFire服务器。我有很多这样的例子。其中一个特别..。

"Spring服务器示例

此示例演示如何将Spring应用程序引导为GemFire服务器(技术上是集群中的对等节点)。此外,GemFire属性是指定的Spring,可以使用Spring的常规约定(属性占位符、SpEL表达式)来配置这些属性,如下所示.

https://github.com/jxblum/spring-boot-gemfire-server-example/blob/master/src/main/java/org/example/SpringBootGemFireServer.java#L59-L84

这种特殊的配置使GemFire服务器成为一个"GemFire管理器“,可能带有嵌入的"Locator”(由start-locator GemFie属性指示,而不是与允许节点加入和“现有”集群的“定位器”GemFire属性混淆),以及用于为GemFire缓存客户端服务(使用ClientCache)的GemFire CacheServer

此示例创建一个“因式分解”区域,其中包含一个CacheLoader (definition 这里),用于在缓存丢失时填充"Factorials“区域。

由于本例在Spring应用程序进程中启动了一个嵌入式GemFire管理器,您甚至可以使用GemFire连接到它,如下所示.

gfsh> connect --jmx-manager=localhost[1099]

然后,您可以在“析因”区域上运行“get”,以查看它计算给它的数字键的阶乘。

要查看更高级的配置,请查看我的其他repos,特别是configuration (这里)。

希望这能有所帮助!

-John

票数 2
EN

Stack Overflow用户

发布于 2018-01-04 19:15:13

嗯,我也遇到了同样的问题,让我和大家分享一下,在这种情况下,我使用Spring和枢轴GemFire作为缓存客户端。

  1. 安装和运行GemFire
  2. 阅读15分钟快速启动指南
  3. 创建一个定位器(我们称之为locator1)、服务器(server1)和区域(region1)
  4. 转到启动“Gee”(gfsh)的文件夹,然后转到定位器的文件夹并打开日志文件,在该文件中,您可以获得您的定位器正在使用的端口。

现在让我们看看Spring引导端:

  1. 在您的应用程序中使用main方法添加@EnablegemFireCaching注释
  2. 在要缓存的方法(无论在何处)中,添加@Cacheable("region1")注释。
  3. 现在,让我们为缓存创建一个配置文件: //这是我的工人阶级 @配置公共类CacheConfiguration { @Bean gemfirePool.addLocators(Collections.singletonList(new ClientCacheFactoryBean gemfireCacheClient() {返回新ClientCacheFactoryBean();} @Bean(name = GemfireConstants.DEFAULT_GEMFIRE_POOL_NAME) PoolFactoryBean gemfirePool() { PoolFactoryBean gemfirePool =新PoolFactoryBean();gemfirePool.setPingInterval(TimeUnit.SECONDS.toMillis(5));ConnectionEndpoint("localhost",HERE_GOES_THE_PORT_NUMBER_FROM_STEP_4));gemfirePool.setName(GemfireConstants.DEFAULT_GEMFIRE_POOL_NAME);gemfirePool.setKeepAlive(false);gemfirePool.setPingInterval(TimeUnit.SECONDS.toMillis(5));region.setShortcut(ClientRegionShortcut.PROXY);gemfirePool.setRetryAttempts(1);gemfirePool.setSubscriptionEnabled(真);gemfirePool.setThreadLocalConnections(false);返回gemfirePool;} @Bean ClientRegionFactoryBean getRegion(ClientCache gemfireCache,Pool gemfirePool) { ClientRegionFactoryBean region = new ClientRegionFactoryBean<>();region.setName("region1");region.setLookupEnabled(真);region.setCache(region.setName);Bean();返回区域;} 这就是全部!,也不要忘记序列化(implements Serializable)类正在被缓存(您的缓存方法返回的类)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41628731

复制
相关文章

相似问题

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