GemFire 是一个在分布式云架构中提供实时,一致性接入数据密集应用的数据管理平台。 GemFire池化内存,CPU,网络资源和本地硬盘来管理应用对象和行为。它使用动态复制和数据分块技术来实现高可用,改善性能,高扩展性和容错能力。GemFire不仅仅是一个分布式数据中心,还是提供可靠的异步事件和保证信息传输的内存数据管理系统。
GemFire为应用提供3种部署架构:peer to peer, client/server, 和 WAN gateway。
Apusic Application Server 暂时只提供client/server的架构方式存储Session。
1.从GemFile官网下载安装包后解压缩
2.设置系统环境变量,除了Java环境变量外,还要设置gemfile的运行变量,以windows为例,如下所示:
GEMFILE= F:\Pivotal_GemFire_800
GF_JAVA= %JAVA_HOME%\bin\java.exe
Path= ;%GEMFILE%\bin;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
3.启动GemFile
a.进入到gemfile安装目录的bin目录下,运行gfsh命令进入到gfsh界面下。
b.启动locator。
在gfsh下执行:start locator --name=locator2 --port=10335,其中name和port可以自定义,端口号在apusic配置中要使用。成功创建后如下所示:
c.启动server。
在启动locator后,进一步启动server,示例如下: start server --name=server2 --bind-address=192.168.101.26 --server-port=40405 --locators=192.168.101.26[10335],其中,name为server名称,bind-address为server端所在服务器地址,server-port为server监听端口,locators为第二步中创建的locator,端口为10335。
d.部署GemFile_AAS_Module.jar
在gfsh命令行下执行部署命令,例如:deploy --dir=c:\GemFire_AAS_Module.jar,部署完毕后如下所示,将在每一个server下均部署GemFile_AAS_Module.jar,如下图所示:
a.配置session存储
进入到apusic目录下,在AAS9\domains\mydomain\config下修改apusic.conf文件。修改session存储服务如下:
<SERVICE CLASS="com.apusic.web.session.GemFireSessionStoreService"> <ATTRIBUTE NAME="CacheXmlFile" VALUE="config/cache-client.xml"/> <ATTRIBUTE NAME="RegionName" VALUE="AAS_SESSIONS"/> <ATTRIBUTE NAME="Refid" VALUE="PARTITION_REDUNDANT"/> <ATTRIBUTE NAME="EnableLocalCache" VALUE="True"/> <ATTRIBUTE NAME="LogFile" VALUE="logs/gemfire.log "/> </SERVICE>
属性说明:
1) CacheXmlFile:GemFire的配置文件路径。
2) RegionName: GemFire中使用的Region的名字。AAS将使用此名字查找服务器端是否创建此Region,若无,则将创建此名字的Region。默认为:AAS_SESSIONS。
3) Refid:创建Region时的参数。参考GemFire中的Region Shortcuts。默认为:REPLICATE_PERSISTENT_OVERFLOW。
4) EnableLocalCache:是否允许本地缓存, 默认为: True。注: 只有在允许本地缓存的情况下,才能回调Session的监听的sessionDestroyed事件。
5) LogFile: GemFire的日志输出文件。默认为:logs/gemfire.log。
b.新增配置GemFire的配置文件
在AAS9\domains\mydomain\config下新增配置GemFire的配置文件cache-client.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE client-cache PUBLIC gemStone Systems, Inc.//GemFire Declarative Caching 8.0//EN" "http://www.gemstone.com/dtd/cache8_0.dtd"> <client-cache> <!-- To configure the client to use a locator instead of a server, modify the locator host and port as necessary. --> <pool name="sessions" subscription-enabled="true"> <locator host="localhost" port="10335"/> </pool> </client-cache>
3.将GemFire_AAS.jar拷贝至apusic_home的lib目录下,例如:AAS9\domains\lib。