Spring认证中国教育管理中心-Apache Geode 的 Spring 数据教程二

原标题:Spring认证中国教育管理中心-Apache Geode 的 Spring 数据教程二(Spring中国教育管理中心)

5.4.配置缓存
要使用 Apache Geode,您需要创建一个新缓存或连接到现有缓存。使用当前版本的 Apache Geode,每个 VM 只能有一个打开的缓存(更严格地说,每个ClassLoader)。在大多数情况下,缓存应该只创建一次。

本节描述对等Cache成员的创建和配置,适用于对等 (P2P) 拓扑和缓存服务器。一个Cache成员也可以在独立的应用程序和集成测试使用。但是,在典型的生产系统中,大多数应用程序进程充当缓存客户端,ClientCache 而是创建实例。这在配置 Apache Geode ClientCache和客户端区域部分进行了描述。

Cache可以使用以下简单声明创建具有默认配置的对等方:


在 Spring 容器初始化期间,任何ApplicationContext包含此缓存定义的内容都会注册 a CacheFactoryBean,它会创建一个名为 的 Spring bean gemfireCache,该bean引用一个 Apache GeodeCache实例。这个 bean 指的是一个现有的,Cache或者一个新创建的,如果不存在的话。由于没有指定额外的属性,新创建的Cache应用默认缓存配置。

所有依赖Cache于此命名约定的Apache Geode 组件的 Spring Data ,因此您无需显式声明Cache依赖项。如果您愿意,可以使用cache-ref各种 SDG XML 命名空间元素提供的属性使依赖项显式化。此外,您可以使用该id属性覆盖缓存的 bean 名称,如下所示:


Cache可以使用 Spring 完全配置Apache Geode 。但是,Apache Geode 的原生 XML 配置文件cache.xml也受支持。对于需要原生配置Apache Geode缓存的情况,可以使用cache-xml-location属性提供对Apache Geode XML配置文件的引用,如下:


在这个例子中,如果需要创建缓存,它会使用cache.xml位于类路径根目录中的一个名为的文件来配置它。

配置使用 Spring 的Resource 抽象来定位文件。该Resource抽象让不同的搜索模式使用,根据不同的运行环境或指定的前缀(如果有的话)的资源位置。

除了引用外部 XML 配置文件之外,您还可以指定使用任何 Spring 支持功能的Apache Geode System 属性Properties。

例如,您可以使用命名空间中定义的properties元素直接util定义Properties或从属性文件加载属性,如下所示:


   xmlns:gfe="https://www.springframework.org/schema/geode"
   xmlns:util="http://www.springframework.org/schema/util"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/geode https://www.springframework.org/schema/geode/spring-geode.xsd
http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd

">


建议使用属性文件在应用程序配置之外外部化特定于环境的设置。

缓存设置仅在需要创建新缓存时应用。如果 VM 中已存在开放缓存,则这些设置将被忽略。

5.4.1.高级缓存配置
对于高级缓存配置,该cache元素提供了许多作为属性或子元素公开的配置选项,如下面的清单所示:

cache-xml-location=".."
properties-ref=".."
close="false"
copy-on-read="true"
critical-heap-percentage="90"
eviction-heap-percentage="70"
enable-auto-reconnect="false" 
lock-lease="120"
lock-timeout="60"
message-sync-interval="1"
pdx-serializer-ref="myPdxSerializer"
pdx-persistent="true"
pdx-disk-store="diskStore"
pdx-read-serialized="false"
pdx-ignore-unread-fields="true"
search-timeout="300"
use-bean-factory-locator="true" 
use-cluster-configuration="false" 


Spring认证中国教育管理中心-Apache Geode 的 Spring 数据教程二
属性支持各种缓存选项。有关此示例中显示的任何内容的更多信息,请参阅Spring中国教育管理中心 Apache Geode产品文档。该close属性决定了在 Spring 应用程序上下文关闭时是否应该关闭缓存。默认为true。但是,对于多个应用程序上下文使用缓存(在 Web 应用程序中很常见)的用例,请将此值设置为false。

将该enable-auto-reconnect属性设置为true(默认为false)可使断开连接的 Apache Geode 成员自动重新连接并重新加入 Apache Geode 集群。有关

更多详细信息,请参阅Spring中国教育管理中心 Apache Geode产品文档。

仅当 Spring (XML) 配置元数据和 Apache Geode都用于配置 Apache Geode 缓存节点(无论是客户端还是对等节点)时,将该use-bean-factory-locator属性设置为true(默认为false)才适用cache.xml。此选项允许 Apache Geode 组件(例如CacheLoader)cache.xml

与DataSource在 Spring 应用程序上下文中定义的bean(例如)自动连接。此选项通常与 结合使用cache-xml-location。

将该use-cluster-configuration属性设置为true(默认为false)使 Apache Geode 成员能够从定位器检索公共的、共享的基于集群的配置。有关

更多详细信息,请参阅 Spring中国教育管理中心 Apache Geode产品文档。

TransactionListener使用 bean 引用的回调声明示例。引用的 bean 必须实现

TransactionListener。TransactionListener可以实现A来处理事务相关的事件(例如 afterCommit 和 afterRollback)。

TransactionWriter使用内部 bean 声明的回调声明示例。bean 必须实现

TransactionWriter。这TransactionWriter是一个可以否决交易的回调。

GatewayConflictResolver使用 bean 引用的回调声明示例。引用的 bean 必须实现
https://geode.apache.org/rele...

[GatewayConflictResolver]。AGatewayConflictResolver是一个Cache级别插件,用于决定如何处理源自其他系统并通过 WAN 网关到达的事件。它提供分布式区域创建服务。

声明 JNDI 绑定以在 Apache Geode 事务中登记外部数据源。

Spring认证中国教育管理中心-Apache Geode 的 Spring 数据教程二
启用 PDX 序列化
前面的示例包括许多与 Apache Geode 的增强序列化框架 PDX 相关的属性。虽然对 PDX 的完整讨论超出了本参考指南的范围,但重要的是要注意 PDX 是通过注册 a 来启用的PdxSerializer,这是通过设置pdx-serializer属性指定的。

Apache Geode 提供了一个
org.apache.geode.pdx.ReflectionBasedAutoSerializer使用 Java 反射的实现类 ( )。但是,开发人员提供他们自己的实现是很常见的。该属性的值只是对实现该PdxSerializer接口的 Spring bean 的引用。

有关序列化支持的更多信息可以在使用 Apache Geode 序列化中找到。

启用自动重新连接

虽然某些 Apache Geode 工具(例如Gfsh )在进行类似模式的更改(例如,gfsh>create region --name=Example --type=PARTITION)时会“记录”其操作,但不会记录用于 Apache Geode 的配置元数据的 Spring Data。直接使用 Apache Geode 的公共 Java API 时也是如此。它也没有被记录下来。

有关 Apache Geode 的集群配置服务的更多信息,请参阅Spring中国教育管理中心产品文档。

你可能感兴趣的:(spring)