如何从gemfire引导spring应用程序上下文?

时间:2014-07-04 13:49:43

标签: gemfire spring-data-gemfire

我使用Spring数据JPA编写CacheLoader和CacheWriter,使用数据源作为spring bean连接到数据库并获取数据......现在我需要在服务器缓存中插入这些加载器和编写器......我该怎么办?这是有效的。

我想我需要在cache.xml中使用下面的元素,并从gfsh命令shell中引用这个xml文件:

<initializer>
    <class-name>org.springframework.data.gemfire.support.SpringContextBootstrappingInitializer</class-name>
    <parameter name="contextConfigLocations">
    <string>application-context.xml</string>
    </parameter>
</initializer>

在这方面,我有以下问题:

1.建议采用上述从gemfire引导spring应用程序上下文的方法进行生产?

2.实现这一目标的其他替代方案是什么?

3.我已经完成了在客户端创建客户端缓存的工作,并插入了这些缓存加载器和缓存编写器,因为我的客户端是一个spring应用程序,所以它们正在执行但这种方法是否适合生产?

1 个答案:

答案 0 :(得分:0)

关于1 ...

这种方法绝对有效,并且使需要使用GemFire服务器的用户/管理员能够使用Gfsh启动,这些服务器主要使用Spring Data GemFire的XML命名空间进行配置。目前,Gfsh不接受用于引导GemFire服务器的Spring XML上下文配置文件。因此,为了使用GemFire将Spring应用程序部署为需要使用Gfsh启动的对等缓存,您需要最少的cache.xml片段,因此这种方法。

关于2 ..

没有使用Gfsh。当然,如果您不打算使用Gfsh在生产中启动GemFire Server,那么使用主方法引导Spring应用程序上下文的简单Java类也可以配置GemFire对等节点或客户端Cache就足够了......

public class GemFireServer {
  public static void main(String[] args) {
    ConfigurableApplicationContext applicationContext = new ClassPathApplicationContext("/path/to/spring/data/gemfire/application/context/config.xml");
    applicationContext.registerShutdownHook();
  }
}

但是,我要指出,在GemFire 8.0中,计划在7月底暂时发布使用Spring配置启动和引导GemFire服务器的能力。即你将能够......

gfsh&gt;启动服务器--name = MyServer --log-level = config --spring-xml-location = / path / to / spring / config.xml

关于3 ...

通常,在服务器上使用CacheLoaders和CacheWriters来加载和填充缓存未命中的值,并“写入”到后端,外部持久存储。虽然,您可以在客户端上指定CacheLoaders和CacheWriters,但这是非典型的,仅在GemFire集群无法访问数据源时才需要,可能是因为数据源特定于客户端。