如何在Wildfly群集中配置JMS组处理?

我有2台服务器server1和server2。 server1是主服务器,server2是从服务器。 两者都在集群环境中运行。

如果具有相同组ID的2条消息同时到达节点1和节点2,则它们将不知道应将消息发送给哪个使用者。因此,该消息最终将由不同的使用者处理,并且有时先到达的消息随后会被处理,这是不希望的。

我想对系统进行配置,以使两个节点彼此知道该消息应由哪个使用者处理。

我尝试过的解决方案: 为服务器1配置了组处理程序LOCAL,并为服务器2配置了REMOTE。 现在,每当消息到达时,LOCAL组处理程序就会标识使用者在哪个节点上,并相应地选择消息。

该解决方案在server1运行正常之前一直有效。但是,如果server1发生故障,将不再处理消息。

为解决此问题,我将备份服务器添加到server1到server2的消息传递子系统活动mq中,并且类似地对server2执行了同样的操作。

/ profile = garima / subsystem = messaging-activemq / server = backup:add

并向该备份服务器添加了相同的群集连接,发现组,http连接器,广播组,但是当我尝试使用此解决方案时,似乎无法解决故障转移条件,并且未在其他节点上处理消息。 / p>

请建议其他方法,或者如何配置带有LOCAL组处理程序的服务器停止的方案。

doubledd 回答:如何在Wildfly群集中配置JMS组处理?

为群集分组推荐的解决方案是已配置的-使用LOCAL分组处理程序的节点的备份。最重要的是,如果集群中没有活动的节点具有LOCAL分组处理程序,那么根本就无法决定由哪个使用者处理哪个组。在我看来,您的备份代理根本无法按预期运行(这可能是另一个问题的主题)。

除了拥有备份之外,您还可以考虑完全消除集群。群集是一种使用水平缩放来提高整体邮件吞吐量的方法。但是,消息分组自然会为每个组序列化消息消耗,从而降低总体消息吞吐量(可能严重取决于使用情况)。由于您正在对消息进行分组,因此可能不需要集群的性能可伸缩性。您是否进行过任何基准测试以确定性能瓶颈?如果是这样,是否将行之有效的解决方案聚集到这些瓶颈上?

本文链接:https://www.f2er.com/3139902.html

大家都在问