2012-11-04 126 views
2

我是Apache Camel的新手,并计划在Grails应用程序中实现File Poller以部署在两个节点的Jboss集群中。Jboss集群中的Apache Camel

我打算使用Grails路由插件来包含Camel。

问题是,由于它是一个集群环境,我们将有两个骆驼上下文正确 (每个节点中有一个)?如果是这样,那么两者将具有相同的路线。当源文件夹中存在文件时,两个骆驼上下文是否都会尝试处理该文件?我不希望两个节点尝试处理文件并导致失败的情况。我只希望该文件只能由一个骆驼上下文和路由处理。我是否需要做特殊的事情来处理这种情况,或者骆驼有能力在集群中工作?

回答

1

你可以运行你的骆驼上下文作为一个JBoss群集单身人士。

========================================

对不起,在手机上回复。这里有一些更多的信息。

这并不是说你无法在集群中的每个节点上运行骆驼上下文(可以),但是如果所有节点都在观察同一个文件系统,并且不希望他们争执谁来处理这些文件放在目标目录中,最好的办法是一次只运行一个上下文实例。

由于您已经在运行jboss集群[我认为],因此HA Singleton模型似乎非常适合您。它只会在一个实例上运行骆驼上下文,但如果该实例失败,另一个节点将启动上下文,因此您总有可能运行上下文。

反正看东西。或者,您可以为群集中的每个节点指定不同的文件掩码,以便每个上下文只会选取与指定的文件掩码相匹配的文件。

+0

非常感谢Nicholas。那么这是否意味着我们无法在集群中运行camelContext?我所需要的只是文件应该在任何给定的时间点由唯一的上下文处理..你能解释一点吗?我对骆驼真的很陌生。 – VimalKumar