我们开发了基于 Karaf 和 Apache Camel 的应用程序。虽然我们的应用程序完全基于包(OSGI),但我们还在启动时加载Camel上下文(及其“路由上下文”),这意味着我们已经定义了一些静态路由。
我的问题是。有没有一种方法可以在应用程序运行时动态加载路由,而无需重新读取 Camel 上下文,因为这将重置/重新启动已经存在的路由。这同样适用于已经创建的路线,例如,如果我们想要编辑已经存在的路线。
整个想法是,我们计划将路线放入数据库中,因此数据库将由 GUI 进行编辑。
那么做到这一点的最佳方法是什么?我不认为这确实是在添加、编辑根目录等情况下重新加载 OSGI 包的最佳方法......
在应用程序的运行过程中,或多或少,不同的端点及其相关的路由将被添加、编辑、删除。
请指教。
谢谢,
蒂霍
我认为一个好的方法是将您的路由分组到小的上下文中,每个上下文只有几个(甚至可能是单个)路由。然后,您重新加载该小上下文,而不会导致其他路由中断。
然而,由于您不相信这种方法,您可以使用 CamelContext 上的方法轻松添加和删除路由。创建一个路线构建器,从您的数据库构建路线并使用添加路由 and 删除路由.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)