代码之家  ›  专栏  ›  技术社区  ›  sgt-hartman

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

  •  3
  • sgt-hartman  · 技术社区  · 7 年前

    我们将Apache Camel作为一个独立的应用程序使用了约2年。它非常有效 但是每次都需要重新启动进程来升级应用程序 我们添加新路线成为一个问题。

    我们正在寻找一种新的部署解决方案,使我们能够部署 无需重新启动主进程即可创建新路由。

    我们可以用XML重写Java DSL路由,但问题是 他们中的大多数(也可能是未来的)都使用定制bean, 处理器、组件等注入一些过于复杂的逻辑 可以用纯XML/Java DSL路由表示。

    在搜索了Camel文档之后,热部署XML路由似乎 可以使用弹簧靴或Karaf/OSGI。

    但我不知道是否有可能“热部署”bean、处理器、, 这些XML路由所需的组件等类。OSGI/Karaf造型 很有希望,但我从未使用过这两种技术,乍一看很难理解它们的用途。

    哪种部署方法和技术允许我们“热部署”路由和bean类?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Claus Ibsen    7 年前

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

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

    要在运行的JVM中热部署单个类或某些类是很困难的,您需要特殊的工具,如JRebel。

        2
  •  2
  •   ST. Kee    7 年前

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

    Apache Karaf中的热部署很简单,只需将捆绑包放入$Karaf\u HOME/deploy中,它就会自动重新加载。

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

    如果这有帮助,一定要告诉我。

    附言:我没有足够的声誉来评论,因此我给出了答案。