2

我需要在分布式模式下形成一个 infinispan 集群。此缓存用于存储会话数据。目前我正在使用由 Jboss 团队的 Manik 开发的tomcatInfinispanSessionManager 。

我以分布式模式创建了 infinispan xml,并使用两个 tomcat 进行测试。使用 apache 作为负载均衡器。每台机器都有自己的 infinispan 缓存条目副本。当任何一个 tomcat 关闭时,会话将从其他 infinispan 缓存中检索。

我的问题是:如何将此缓存条目放入在单独机器上运行的 infinispan 服务器(使用 hotrod/memcached)?

4

2 回答 2

3

如果您将远程缓存加载程序添加到您拥有的缓存配置中,它将在远程 Hot Rod 服务器中备份数据,假设您正确配置了 Hot Rod 服务器的 IP:Port 地址。

但是,如果您尝试对会话数据进行集群化,我强烈建议您下载JBoss EAP 6.1,它带有开箱即用的基于 Infinispan 的集群就绪会话数据存储。会话缓存也可以使用远程缓存加载器进行配置,但配置会略有不同,因为它使用 JBoss EAP 配置格式。

于 2013-06-24T10:02:53.210 回答
1

我正在使用 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)

如果我错了,请纠正我并建议如何进一步进行?

于 2013-06-26T09:59:06.020 回答