首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“热部署”Apache Camel路由和bean类的最佳解决方案?

“热部署”Apache Camel路由和bean类的最佳解决方案?
EN

Stack Overflow用户
提问于 2018-01-17 22:28:06
回答 2查看 1.2K关注 0票数 3

我们将Apache Camel作为一个独立的应用程序使用了大约2年。它工作得很好,但每次我们添加新的路由时都需要重新启动进程来升级应用程序,这成为了一个问题。

我们正在寻找一种新的部署解决方案,使我们能够部署新的路由,而不必重新启动主进程。

对我们来说,用XML重写我们的Java DSL路由是没有问题的,但问题是,它们中的大多数(可能将来也会)利用自定义的bean、处理器、组件等注入一些太复杂的逻辑,而这些逻辑无法用纯XML/Java DSL路由来表达。

在搜索了Camel文档之后,似乎可以使用spring-boot或Karaf/OSGI来热部署XML路由。

但我不知道是否有可能“热部署”这些XML路由所需的bean、处理器、组件等类。OSGI/Karaf看起来很有前途,但我从来没有用过这两种技术,乍一看要掌握它们的目的并不容易。

哪种部署方法和哪种技术可以让我们“热部署”路由和bean类?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-19 01:30:59

如果你想热部署Java代码,那么你需要一个像平台这样的应用服务器,比如Apache Karaf/ServiceMix/JBoss Fuse等,或者像Tomcat,JBoss,WildFly等传统的(用于WAR文件)。

然后,您可以进行“热部署”,作为应用程序的部署。

在运行的JVM中热部署单个类或某些类比较困难,并且需要特殊的工具,如JRebel。

票数 2
EN

Stack Overflow用户

发布于 2018-01-29 15:05:27

您可以尝试使用camel-blueprint来设置上下文/路由。通过将bean公开为osgi服务,您可以在路由中使用这些bean。我建议你先看看apache camel blueprint maven原型和camel组件原型。

Apache Karaf中的热部署很简单,只需将捆绑包放到$KARAF_HOME/deploy中,它将自动重新加载。

参考:camel-archetype-component camel-archetype-blueprint

如果有帮助,一定要让我知道。

附言:我没有足够的声誉来评论,所以我的答案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48303461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档