我们目前正在测试从 Wildfly 8.2.0 迁移到 Wildfly 9.0.0.CR1(或从快照构建的 CR2)。该系统是一个使用 mod_cluster 的集群,并且在 VPS 上运行,这实际上阻止了它使用多播。
在 8.2.0 上,我们一直在使用以下运行良好的 modcluster 配置:
<mod-cluster-config proxy-list="1.2.3.4:10001,1.2.3.5:10001" advertise="false" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
不幸的是,在 9.0.0 上,proxy-list 已被弃用,服务器的启动将以错误结束。文档严重缺乏,但是经过几次尝试后,我发现代理列表已替换为出站套接字绑定列表的代理。因此,配置如下所示:
<mod-cluster-config proxies="mc-prox1 mc-prox2" advertise="false" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
并且应将以下内容添加到适当的套接字绑定组中(在我的情况下为全哈):
<outbound-socket-binding name="mc-prox1">
<remote-destination host="1.2.3.4" port="10001"/>
</outbound-socket-binding>
<outbound-socket-binding name="mc-prox2">
<remote-destination host="1.2.3.5" port="10001"/>
</outbound-socket-binding>
到目前为止,一切都很好。在此之后,httpd 集群开始注册节点。但是我从负载均衡器中得到错误。当我查看 /mod_cluster-manager 时,我看到了几行Node REMOVED行,并且还有许多错误,例如:
ERROR [org.jboss.modcluster] (UndertowEventHandlerAdapter - 1) MODCLUSTER000042: Error MEM sending STATUS command to node1/1.2.3.4:10001, configuration will be reset: MEM: Can't read node
在 mod_cluster 的日志中有等效的警告:
manager_handler STATUS error: MEM: Can't read node
据我了解,问题在于虽然 wildfly/modcluster 能够连接到 httpd/mod_cluster,但它不能以其他方式工作。不幸的是,即使经过大量的努力,我也被卡住了。
有人可以在没有广告的情况下帮助为 Wildfly 9.0.0 设置 mod_cluster 吗?非常感谢。