在 Apache Camel 中动态加载路由的最佳方法

2023-12-05

我们开发了基于 Karaf 和 A​​pache Camel 的应用程序。虽然我们的应用程序完全基于包(OSGI),但我们还在启动时加载Camel上下文(及其“路由上下文”),这意味着我们已经定义了一些静态路由。

我的问题是。有没有一种方法可以在应用程序运行时动态加载路由,而无需重新读取 Camel 上下文,因为这将重置/重新启动已经存在的路由。这同样适用于已经创建的路线,例如,如果我们想要编辑已经存在的路线。

整个想法是,我们计划将路线放入数据库中,因此数据库将由 GUI 进行编辑。

那么做到这一点的最佳方法是什么?我不认为这确实是在添加、编辑根目录等情况下重新加载 OSGI 包的最佳方法......

在应用程序的运行过程中,或多或少,不同的端点及其相关的路由将被添加、编辑、删除。

请指教。

谢谢, 蒂霍


我认为一个好的方法是将您的路由分组到小的上下文中,每个上下文只有几个(甚至可能是单个)路由。然后,您重新加载该小上下文,而不会导致其他路由中断。

然而,由于您不相信这种方法,您可以使用 CamelContext 上的方法轻松添加和删除路由。创建一个路线构建器,从您的数据库构建路线并使用添加路由 and 删除路由.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Apache Camel 中动态加载路由的最佳方法 的相关文章

随机推荐

  • Python pandas 多索引列

    首先 我在 jupyter 笔记本中使用 python 3 50 我想创建一个 DataFrame 来显示报告中的一些数据 我希望它有两个索引列 如果引用它的术语不正确 请原谅 我不习惯使用 pandas 我有这个有效的示例代码 frame
  • Swift 2.3 中 #selector 更新有什么好处?

    我看不出仅将方法名称写为字符串有什么问题 我只是好奇为什么这更好 这是一个huge改变 基本上 这弥补了该语言中最大的崩溃漏洞 如果你将 Selector 形成为字符串文字 并且你形成了错误的形式 这太容易了 或者如果你形成了正确的形式 但
  • 我希望两个按钮具有相同的宽度,并使用自动布局在屏幕顶部的所有屏幕尺寸中按比例定位自己?

    附上我打算设计的视图 我想相对于超级视图定位按钮 并且它们的宽度和高度必须与屏幕尺寸成比例增加 而不是保持固定 附上屏幕预览 这是仅针对一行按钮的示例 因此它们可以重用于其他 UI 元素 将这些约束施加到您的按钮上 左键 左前导约束 顶级约
  • Excel VBA SUMIF 或 SUMIFS 用于多个条件

    我正在尝试从用户提供的日期范围中提取唯一的工作请求编号 将这些唯一的工作请求编号放入 J 列 与 A 列中的 WR 进行比较后 然后添加 J 列中找到的每个 Unique WR 的所有值 与 A 列值进行比较 以及 I 列中找到的值 对于此
  • AppleTV 图标的奇怪问题 - 在 4K 型号上选择时图标会缩小?

    在基本的 AppleTV 应用程序中 ON 4K 型号 当您将鼠标滑过图标时 iml 变为 1 2 大小并位于右上角 图标区域的其余部分只是灰色 有人见过这种行为吗 相同的构建在 4K 之前的 AppleTV 型号上完美运行 不断地检查所有
  • 控制器外部类中的 Context.Session

    在我当前使用的控制器中Context Session GetString KEY 我有一个类需要读取会话中存储的一些值 我以前用过这个HttpContext Current Session KEY 我尝试在 Stackoverflow 和
  • 带有每个选项卡绑定的 WPF 路由命令

    我打算禁用和启用 TabControl 外部的按钮 就像当前选项卡更改时 TabItem 内部的按钮一样 但 TabItem 的 CommandBindings 似乎不会影响可视化树的 向上 什么is正确的方法是这样做吗 使用此 XAML
  • 我如何处理这个字符串来打开我的应用程序

    我在浏览器重定向中得到这个字符串 意图 view id 123 Intent package com myapp scheme myapp launchFlags 268435456 end 我该如何使用它 在发现 http fokkezb
  • 数据库名称作为存储过程 SQL Server 中的参数

    我希望将数据库名称作为参数传递给存储过程 并且希望在 where 条件中使用它来设置存储过程的数据库 但我收到一个错误 附近的语法不正确 示例代码 Create proc dbo stored procedure one variable1
  • 圆碰撞后的新速度

    在圆形台球桌上 台球以速度 v1 与台球边界碰撞 该碰撞检测如下 double s sqrt p x a p x a p y b p y b if s
  • SQLAlchemy:FROM 条目仍然存在于相关子查询中

    我正在尝试构建以下查询 用作包含查询的子查询 该查询定义了名为tbl outer 与 SQLAlchemy SELECT max tbl ts AS max 1 FROM tbl WHERE tbl id tbl outer id 当我阅读
  • OpenMP 和 Python

    我有为共享内存机器 C 和 FORTRAN 编写 OpenMP 的经验 以执行简单的任务 如矩阵加法 乘法等 只是为了看看它如何与 LAPACK 竞争 我对 OpenMP 的了解足以执行简单的任务 而无需查看文档 最近 我的项目转向了 Py
  • 使用 Ninject(或其他一些容器) 如何找出请求服务的类型?

    假设我有一个服务接口 public interface IFooService void DoSomething 该服务的具体实现是通用的 public class FooService
  • print_r() 将属性添加到 DateTime 对象[重复]

    这个问题在这里已经有答案了 考虑以下代码示例 m oDate new DateTime 2013 06 12 15 54 25 print r m oDate echo m oDate gt date 从 PHP 5 3 开始 这会产生 类
  • 如何重定向 stdout 和 stderr 流(多平台)?

    我正在编写使用外部库的 GL 应用程序 它将错误打印到控制台 我想捕获它并在游戏控制台中打印 PS 抱歉 我的英语不好 您可以采取两种基本方法来实现此目的 如果库都使用std cout对于你想要捕获的 IO 你可以写你自己的basic st
  • 尝试混合 CSV 和哈希表中的数据来创建变量

    我停在代码审查 询问我如何简化脚本 并建议使用哈希表因为它会清理代码 我得到了一个非常基本的例子 但事实并非如此即插即用 我已经编写了一些基本代码 但它没有做我认为应该做的事情 我知道代码审查人员不会提供这样的支持 所以我在这里寻求有关组合
  • 如何在运行时检查子类是否是类的实例? [复制]

    这个问题在这里已经有答案了 在 Android 应用程序测试套件中 我有一个这样的类 其中B是一个视图 public class A extends B etc 现在我有一个视图对象列表 其中可能包含A对象 但在这种情况下我只关心它们是否是
  • 如何一次选择多个联系人?

    我使用以下代码将电话簿联系人检索到我的应用程序 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView
  • 在 Twitter Bootstrap 模式中动态加载谷歌地图

    我正在尝试在 Twitter 引导程序的模式窗口内动态添加地图 但它似乎不起作用
  • 在 Apache Camel 中动态加载路由的最佳方法

    我们开发了基于 Karaf 和 A pache Camel 的应用程序 虽然我们的应用程序完全基于包 OSGI 但我们还在启动时加载Camel上下文 及其 路由上下文 这意味着我们已经定义了一些静态路由 我的问题是 有没有一种方法可以在应用