2

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

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

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

4

1 回答 1

1

您可以将骆驼上下文作为 jboss 集群单例运行。

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

抱歉,正在用手机回复。这里有更多信息。

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

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

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

于 2012-11-05T01:19:08.753 回答