如何保留动态创建的骆驼路线?

How to persist dynamically created camel routes?

我正在使用侦听 "control route" 的自定义处理器动态创建路由。它根据发送到控制路由的消息内容创建路由。它用于由另一个系统动态创建 FTP/file 个端点。

我在 ServiceMix 和 Hawtio 中使用 Camel 作为蓝图包来控制路由的状态(例如暂停它们)。

它工作正常,但(逻辑上)如果 camel 上下文重新启动,这些路由将无法识别,因为没有持久路由配置。

是否有一些关于如何持久化路由的最佳实践?

我正在考虑通过读取文件端点的目录结构或使用数据库来保存路由及其状态来重新创建路由。

我们遇到了相同的情况并选择使用数据库 table 来存储有关每条路线的元数据并在启动时重建路线...假设您的路线本质上是相当静态的,这很容易.

我们还考虑将路由作为 Spring DSL/XML 添加到文件中并在启动时加载它。但我们选择了数据库方法,因为我们还需要将此元数据公开给 UI 以管理路由配置等。然后根据需要简单地监听配置和 remove/re-add 路由的更改等。