【发布时间】:2015-08-21 03:13:59
【问题描述】:
我有一个场景,我正在尝试从 Yelp API 读取数据并希望在特定时间间隔后将其放入 ActiveMQ 队列中,因此我正在使用石英调度程序。我的石英调度程序每 10 分钟运行一次,并且将数据推送到队列中, 到这里为止一切都很好,
现在我希望它在集群环境中工作,我将部署 2 个实例并监听相同的 Yelp 端点,现在发生的情况是,我的 2 个实例的石英调度程序在同一个实例上执行,它们提取相同的信息来自 Yelp,导致相同的消息登陆 ActiveMQ 队列,即 DUPLICATES,(我想将集群环境用于高可用性目的,即如果任何节点发生故障,其他节点可以接管。)
那么在Mule中是否有任何配置可以将一个节点提升为主节点,将另一个节点提升为故障转移节点。
感谢大家的帮助!
【问题讨论】:
-
您是否在 Mule 企业版中使用集群?
-
@DavidDossot 暂时没有,但是有没有办法做到这一点,使用企业版?,你能说明一下吗?
-
是的,EE 集群负责管理集群中的单例端点,例如轮询器。如果您不使用 EE,则必须构建一些自定义的东西才能这样做。
-
您可以使用 JDBC 兼容的数据库将 Quartz 分布在多个节点上。设置有些混乱,但您可以在多个 Mule CE 实例上进行单节点轮询。也就是说,EE 集群功能可能是最简单的方法。