4

我通过以下方式设置了两个节点的 JBoss AS 7.1.1.FINAL 集群 -

  1. master - 在 Ubuntu Server 12.10 (VirtualBox VM) 上运行
  2. slave - 在 Windows 7 上运行(VirtaulBox 主机)

我已经在两个节点上部署了一个 Spring Web 应用程序,并且我正在尝试设置一个有效的复制缓存。我的问题是,即使集群显然有效,缓存似乎也没有被复制。

我的配置 -

在 domain.xml 中(在主从机上)

<subsystem xmlns="urn:jboss:domain:infinispan:1.2" default-cache-container="cluster">
    <cache-container name="cluster" aliases="ha-partition" default-cache="default" jndi-name="java:jboss/infinispan/cluster" start="EAGER">
        <transport lock-timeout="60000" />
        <replicated-cache name="default" mode="SYNC" batching="true">
            <locking isolation="REPEATABLE_READ"/>
        </replicated-cache>
    </cache-container>
</subsystem>

这几乎是 domain.xml 中的默认配置,除了 jndi-name 和 EAGER start。

在弹簧配置中 -

<infinispan:container-cache-manager id="cacheManager" cache-container-ref="springCacheContainer" />
<jee:jndi-lookup id="springCacheContainer" jndi-name="java:jboss/infinispan/cluster" />

通过此设置,缓存可以工作,但不会被复制。缓存似乎彼此独立运行。此外,EAGER 启动似乎没有任何效果。缓存似乎仅在首次使用时才被初始化。

来自主日志(第一次使用缓存)-

[Server:server-one] 03:25:55,756 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ajp-192.168.2.13-192.168.2.13-8009-3) ISPN000078: Starting JGroups Channel
[Server:server-one] 03:25:55,762 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ajp-192.168.2.13-192.168.2.13-8009-3) ISPN000094: Received new cluster view: [master:server-one/cluster|1] [master:server-one/cluster, slave:server-one-slave/cluster]
[Server:server-one] 03:25:55,763 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ajp-192.168.2.13-192.168.2.13-8009-3) ISPN000079: Cache local address is master:server-one/cluster, physical addresses are [192.168.2.13:55200]
[Server:server-one] 03:25:55,769 INFO  [org.infinispan.factories.GlobalComponentRegistry] (ajp-192.168.2.13-192.168.2.13-8009-3) ISPN000128: Infinispan version: Infinispan 'Brahma' 5.1.2.FINAL
[Server:server-one] 03:25:55,851 INFO  [org.jboss.as.clustering.infinispan] (ajp-192.168.2.13-192.168.2.13-8009-3) JBAS010281: Started cluster cache from cluster container

从从属日志(第一次使用缓存)-

[Server:server-one-slave] 03:29:38,124 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ajp--192.168.2.10-8009-2) ISPN000078: Starting JGroups Channel
[Server:server-one-slave] 03:29:38,129 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ajp--192.168.2.10-8009-2) ISPN000094: Received new cluster view: [master:server-one/cluster|1] [master:server-one/cluster, slave:server-one-slave/cluster]
[Server:server-one-slave] 03:29:38,130 INFO  [org.infinispan.remoting.transport.jgroups.JGroupsTransport] (ajp--192.168.2.10-8009-2) ISPN000079: Cache local address is slave:server-one-slave/cluster, physical addresses are [192.168.2.10:55200]
[Server:server-one-slave] 03:29:38,133 INFO  [org.infinispan.factories.GlobalComponentRegistry] (ajp--192.168.2.10-8009-2) ISPN000128: Infinispan version: Infinispan 'Brahma' 5.1.2.FINAL
[Server:server-one-slave] 03:29:38,195 INFO  [org.jboss.as.clustering.infinispan] (ajp--192.168.2.10-8009-2) JBAS010281: Started cluster cache from cluster container

我不认为这是一个 udp/多播问题,因为我在这个集群中设置了 mod_cluster、HornetQ 和 Quartz,它们都按预期工作。

4

2 回答 2

0

放入<distributable/>web.xml 就可以了。

于 2013-04-12T03:11:03.737 回答
0

我有一个类似的问题,我的缓存在第一次使用应用程序之前不会复制。我能够通过将复制缓存的“start”属性设置为 EAGER 以及缓存容器属性 start="EAGER" 来解决此问题。

<replicated-cache name="default" mode="SYNC" batching="true" start="EAGER">
于 2013-09-17T12:57:28.027 回答