我尝试用Infinispan Server替换我们的memcached服务器,以获得我们服务的复制/分发功能。
使用clustered-memcached.xml
示例配置我可以在多个主机上轻松运行Infinispan服务器,但问题是自动发现/多播功能将在整个网络上找到所有Infinispan Server实例,这意味着它将加入我们所有的阶段(测试,qa,生产)一起到一个集群......这显然不是任何人想要的。
有没有一个例子说明我如何通过IP /端口定义集群成员而没有任何UDP多播发现魔法?该文档没有关于隔离集群的内容......并且通常缺少有用的xml示例。
您需要做的是配置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
要么
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>