Apache Camel - 从JVM崩溃中恢复

时间:2017-10-19 12:40:19

标签: java apache apache-camel fault-tolerance

我正在考虑使用Apache camel在我们的解决方案中实现EIP模式。我们的要求是构建一个可以从故障中恢复的容错系统。

我理解Apache Camel(死信频道)提供的本机错误处理功能,它们满足我的要求。

但是,我不清楚如何配置我们的解决方案,以便我们可以从致命错误中恢复,比如JVM崩溃。

在JVM崩溃后让Camel应用程序从上次已知状态重新启动的最佳方法是什么,请考虑我没有使用持久队列来维护系统状态?

我认为Spring Integration提供了创建持久性通道的配置。 Apache Camel是否支持类似的配置?

1 个答案:

答案 0 :(得分:2)

是的,您可以将消息传递用于持久存储,这样您就可以构建容错的应用程序,以便在JVM崩溃后继续存在。

您选择使用什么作为持久存储。例如,您可以使用Apache ActiveMQ / Artemis等JMS消息代理,并将Camel JMS组件用于可以使用事务处理JMS的路由,以确保消息不会被取消,除非它们被成功处理,因此如果JVM中途崩溃,那么消息仍然在代理上,并且可以在JVM启动并再次运行时重新处理等。

但是有不同的方法来设计容错系统。 Apache Camel在这方面是开放式的,允许你自由。