Spring Data GemFire学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Data GemFire学习相关的知识,希望对你有一定的参考价值。

英文手册:http://docs.spring.io/spring-data/gemfire/docs/1.5.2.RELEASE/reference/html/(Spring Data GemFire Reference Guide)

 

新版本不用配置Gemfire自带的cache.xml直接用引用名空间的方式,配置Spring配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlxsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:gfe="http://www.springframework.org/schema/gemfire"
  xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/gemfire http://www.springframework.org/schema/gemfire/spring-gemfire.xsd"> 

    <bean id ... >

    <gfe:cache ...> 

</beans>

注解说明:
<gfe:cache/>创建一个默认的cache:首先Spring会注册一个CacheFactoryBean来创建一个实现了Cache接口的gemfireCache对象。
这个Cache可以是一个既存的也可以是个已经在服务器上存在连接上去的

<gfe:cache id="cache-with-xml" cache-xml-location="classpath:cache.xml"/>
也可以指定用Gemfire本地的配置文件配置。

     <gfe:cache properties-ref="props"/>

     <util:properties id="props" location="file:/vfabric/gemfire/gemfire.properties"/>
</beans>
也可以这样外化配置,通过引用的properties文件配置
这些配置只有在创建的时候才会应用,如果JVM中已经有Cache了,则会忽略

高级Cache配置
<gfe:cache
        copy-on-read="true"
        critical-heap-percentage="70"
        eviction-heap-percentage="60"
        lock-lease="120"
        lock-timeout="60"
        pdx-serializer="myPdxSerializer"
        pdx-disk-store="diskStore"
        pdx-ignore-unread-fields="true"
        pdx-persistent="true"
        pdx-read-serialized="false"
        message-sync-interval="1"
        search-timeout="300"
        close="false"
        lazy-init="true">

     <gfe:transaction-listener ref="myTransactionListener"/>

     <gfe:transaction-writer> 
        <bean class="org.springframework.data.gemfire.example.TransactionListener"/>
      </gfe:transaction-writer>

     <gfe:dynamic-region-factory/> 允许Gemfire动态region factory
     <gfe:jndi-binding jndi-name="myDataSource" type="ManagedDataSource"/> 声明jdni接口绑定外部数据源
</gfe:cache>
更多的配置信息可以看Gemfire官网  http://gemfire.docs.pivotal.io/index.html
close属性表明cache是否和Spring application context 一起关闭
lazy-init是不是等到用的时候才init
TransactionListener 中引用的bean必须实现TransactionListener接口
use-bean-factory-locator属性代表用Spring内部类型BeanFactoryLocator来让定义在cache.xml中的locator注册成一个 Spring beans
在某些情况下,比如UT和IT时,设置use-bean-factory-locator为false,来防止异常,这个异常也会在用Maven build 脚本启动test的时候。测试人员要fork给每个testFork一个新的JVM。
 (in maven, set<forkmode>always</forkmode>

允许PDX序列化



 
 
 
 
 

以上是关于Spring Data GemFire学习的主要内容,如果未能解决你的问题,请参考以下文章

Spring Data 的 Pivotal GemFire 参考指南前言

Spring-Data-Gemfire - 无法联系定位器服务。操作超时或定位器不存在

Geode / GemFire无法创建gemfireCache bean错误:Spring Boot v2.1.3-GemFire启动器1.1.0.RELEASE

Spring认证指南:了解如何使用 Gemfire 的数据结构构建应用程序

Gemfire服务器服务在群集模式下挂起

缓存系统 - Redis vs Geode/GemFire