Infinispan服务器群集-定义成员IP地址

时间:2019-04-18 13:56:30

标签: infinispan

我试图用Infinispan Server替换我们的内存缓存服务器,以获取服务的复制/分发功能。

使用clustered-memcached.xml示例配置,我可以轻松地在多个主机上运行Infinispan Server,但是问题是自动发现/多播功能会在整个网络上找到所有Infinispan Server实例,这意味着它将加入我们所有的阶段(测试,质量保证,生产)一起形成一个集群……这显然不是任何人想要的。

是否有一个示例,说明如何通过IP /端口定义群集成员而无需任何UDP多播发现魔术?该文档对隔离集群的内容为零,而且通常缺少有用的xml示例。

1 个答案:

答案 0 :(得分:1)

您需要做的是配置initial_hosts,添加IP地址。在此示例中,我们使用192.168.1.2[7600],192.168.1.3[7600]

以下是部分堆栈配置

    <stack name="tcp">
        <transport type="TCP" socket-binding="jgroups-tcp"/>
        <protocol type="TCPPING">
            <property name="initial_hosts">192.168.1.2[7600],192.168.1.3[7600]</property>
            <property name="num_initial_members">2</property>
            <property name="port_range">0</property>
            <property name="timeout">2000</property>
        </protocol>
        .......
    </stack>

配置了initial_hosts之后,您需要在服务器启动时更改stacks

1)您可以将${jboss.default.jgroups.stack:udp}替换为tcp

OR

2)使用./standalone.sh -c clustered.xml -Djboss.default.jgroups.stack=tcp

启动服务器
<subsystem xmlns="urn:infinispan:server:jgroups:9.4">
  <channels default="cluster">
    <channel name="cluster"/>
  </channels>
  <stacks default="${jboss.default.jgroups.stack:udp}">
    ...
  </stacks>
</subsystem>