我需要在分布式模式下形成一个infinispan集群。此缓存用于存储会话数据。目前我使用的是Jboss团队的Manik开发的tomcatInfinispanSessionManager。
我已经在分布式模式下创建了infinispan,并使用了两个tomcats进行测试。使用apache作为负载均衡器。每台机器都有其自己的infinispan缓存条目的副本。当任何tomcat关闭时,会从其他infinispan缓存中检索会话。
我的问题是:如何将此缓存条目添加到在单独机器上运行的infinispan服务器(使用hotrod/memcached)?
发布于 2013-06-24 18:02:53
如果您将remote cache loader添加到缓存配置中,它将备份远程热棒服务器中的数据,前提是您正确配置了热棒服务器的IP:Port地址。
但是,如果您正在尝试集群您的会话数据,我强烈建议您下载JBoss EAP 6.1,它带有基于Infinispan集群的开箱即用的会话数据存储。会话缓存也可以使用远程缓存加载器进行配置,但是配置会略有不同,因为它使用了JBoss EAP配置格式。
发布于 2013-06-26 17:59:06
我使用的是ispn 5.1版本,并以hotrod模式启动了服务器。我的缓存配置xml如下。
<?xml version="1.0" encoding="UTF-8"?>
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:5.3 http://www.infinispan.org/schemas/infinispan-config-5.3.xsd
urn:infinispan:config:remote:5.3 http://www.infinispan.org/schemas/infinispan-cachestore-remote-config-5.3.xsd"
xmlns="urn:infinispan:config:5.3" xmlns:remote="urn:infinispan:config:remote:5.3">
<global>
<transport clusterName="tomcatSession">
<properties>
<property name="configurationFile"
value="E:/Software/apache-tomcat-7.0.34/conf/jgroups.xml">
</property>
</properties>
</transport>
<globalJmxStatistics enabled="true" />
</global>
<namedCache name="tc_session_ispn-sess-mgr">
<clustering mode="distribution">
<l1 enabled="true" lifespan="600000" />
</clustering>
<loaders>
<remoteStore xmlns="urn:infinispan:config:remote:5.3"
fetchPersistentState="false" ignoreModifications="false"
purgeOnStartup="false" remoteCache="myCache" rawValues="true">
<servers>
<server host="10.145.4.172" port="11222" />
</servers>
<connectionPool maxActive="10" exhaustedAction="CREATE_NEW" />
<async enabled="true" />
</remoteStore>
</loaders>
</namedCache>
</infinispan>在使用这个缓存配置xml时,我遇到了以下异常
Exception in thread "main" org.infinispan.config.ConfigurationException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[39,104]
Message: Unexpected element '{urn:infinispan:config:remote:5.3}remoteStore' encountered
at org.infinispan.configuration.parsing.Parser.parse(Parser.java:168)
at org.infinispan.configuration.parsing.Parser.parse(Parser.java:130)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:368)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:340)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:327)如果我错了,请纠正我,并建议如何进一步进行?
https://stackoverflow.com/questions/17205946
复制相似问题