java - 如何保留动态创建的 Camel 路线?

标签 java apache-camel blueprint-osgi

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

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

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

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

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

最佳答案

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

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

关于java - 如何保留动态创建的 Camel 路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28584684/

相关文章:

java - 助手类最佳方法android

java - 运行 Apache Camel 时出错

spring - JMS队列无负载时消费者数量不缩减

spring - 在 osgi 蓝图中读取环境变量

hibernate - org.apache.aries.jpa :org. apache.aries.jpa.blueprint :2. 3.0 - 无法运行

apache-camel - Fuse ESB/OSGI/Blueprint 按字母顺序读取配置文件?

java - 合并集合图

java - Tomcat Web 应用程序 - 指定 TransformerFactoryImpl 类不起作用

java - 正则表达式模式,匹配器,split或pattern.split()哪个是最有效的

java - 有关 apache Camel 路线的任何信息