如何坚持动态创建的驼峰路由?

时间:2015-02-18 13:22:09

标签: java apache-camel blueprint-osgi

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

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

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

是否有一些关于如何坚持路线的最佳做法?

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

1 个答案:

答案 0 :(得分:7)

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

我们还考虑将路由作为Spring DSL / XML添加到文件中并在启动时加载它。但我们选择了数据库方法,因为我们还需要将这些元数据暴露给UI以管理路由配置等。然后只需监听配置的更改并根据需要删除/重新添加路由等。