我试图用Infinispan Server替换我们的内存缓存服务器,以获取服务的复制/分发功能。
使用clustered-memcached.xml
示例配置,我可以轻松地在多个主机上运行Infinispan Server,但是问题是自动发现/多播功能会在整个网络上找到所有Infinispan Server实例,这意味着它将加入我们所有的阶段(测试,质量保证,生产)一起形成一个集群……这显然不是任何人想要的。
是否有一个示例,说明如何通过IP /端口定义群集成员而无需任何UDP多播发现魔术?该文档对隔离集群的内容为零,而且通常缺少有用的xml示例。
答案 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>