2017-10-19 122 views
1

我正在考慮在我們的解決方案中使用Apache camel來實現EIP模式。我們的要求是建立一個可以從故障中恢復的容錯系統。Apache Camel - 從JVM崩潰中恢復

我瞭解Apache Camel(死信通道)提供的本地錯誤處理功能,它們滿足我的要求。

但是,我不清楚如何配置我們的解決方案,以便我們可以從致命錯誤(例如JVM崩潰)中恢復。

在JVM崩潰後,讓Camel應用程序從最後一個已知狀態重新啓動的最佳方式是什麼?考慮我沒有使用持久隊列來維護系統狀態?

我認爲Spring Integration提供了配置來創建持久通道。 Apache Camel是否支持類似的配置?

回答

1

是的,您可以使用消息傳遞進行持久性存儲,以便構建可以在JVM崩潰後仍然存在的容錯應用程序。

您選擇使用什麼作爲永久存儲器。例如,您可以使用JMS消息代理(如Apache ActiveMQ/Artemis),並將Camel JMS組件用於可以使用事務JMS的路由,以確保消息不會被出隊,除非它們被成功處理,所以如果JVM中途崩潰,消息仍然在代理上,並且可以在JVM啓動並再次運行時重新處理。

但是,設計容錯系統有多種不同的方式。 Apache Camel在這方面是開放式的,並允許你的自由。