Mule群集配置问题

时间:2015-09-17 20:43:41

标签: mule

我有一个mule集群,其中2个节点在不同的机器上运行,集群通过mmc与tomcat配置。当我在mmc集群中部署应用程序时,应用程序正在部署2个节点。我有石英调度程序,每晚运行。

<quartz:connector name="Quartz" validateConnections="true" doc:name="Quartz">
        <quartz:factory-property key="org.quartz.scheduler.instanceName" value="my-app1"/>
</quartz:connector>

<quartz:inbound-endpoint jobName="Fetch" repeatInterval="0" repeatCount="0" responseTimeout="10000" doc:name="Quartz" startDelay="0" cronExpression="${cronExpression}" connector-ref="Quartz">
            <quartz:event-generator-job/>
</quartz:inbound-endpoint>

现在,当应用程序在晚上11点开始时,应用程序正在两个节点中运行。这导致处理记录的重复,即在2台机器中处理相同的应用程序。 Mule集群是HA-Active-Active模式,我需要的是在任何给定时间只有一个节点应该处理,如果有巨大的负载,那么其他服务器应该处理它,即使一个服务器的故障应该启动并运行另一个服务器。而不是这样做,调度程序在两个应用程序中并行运行。如何避免这种情况。

2 个答案:

答案 0 :(得分:2)

在群集中,只应触发一个Quartz入站端点。如果没有发生这种情况,请与我们的支持团队联系。关于在高负载下分发消息,您应该将一个vm出站端点放在quartz入站端点之后,将其余的流逻辑放在另一个流中,以侦听vm入站端点中的那些消息。

答案 1 :(得分:-1)

如果事情没有成功,你可以有一个临时的解决方法,其中,flow只有quarts端点,然后是一个JSM队列,它将向两个节点发送几乎平衡的消息。

这里的夸脱和JMS组合应该只部署在一台服务器上。