集群Apache Camel

时间:2016-09-21 14:06:43

标签: apache-camel

我们已经创建了一个嵌入了Camel的小型Spring启动应用程序。它只是通过imap对未读电子邮件的Office365邮箱进行轮询。

我们有一些详细的日志记录,我们看到Box 1使用该消息,然后处理它(发送一些REST请求)并完成。 2s之后,在方框1完成后,方框2选择相同的消息并处理它。

我们实施了一个Idempotent消费者:

from(casesMailBox.getUri()).idempotentConsumer(simple("${in.headers.Message-ID}"), repo).routeId("messaging").process(emailToCaseProcessor);

我们可以在底层Oracle表中看到重复的条目。

文件不清楚,但我认为idempotentConsumer会尽快提交给DB。

我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

幂等消费者不会在集群环境中工作,因为幂等存储库是内存存储库。

您必须使用中央数据库或基于Hazelcast数据网格的实施。

有关详细信息,请参阅:http://camel.apache.org/idempotent-consumer.html

<强>动物园管理员,

如果你想使用民意调查消费者;在集群环境中的调度程序,并希望避免重复路由触发,您可以使用带有路由策略的zookeeper。

价:http://camel.apache.org/zookeeper.html

希望它有所帮助!!!