可以在执行时从驼峰上下文覆盖路由吗?

时间:2017-01-08 04:57:02

标签: apache-camel

我对Apache Camel中的路由管理有疑问。在我看来它应该被处理,但无论如何我都要解决我的问题。

如果我在Camel Context中注册了RouteA并执行它。正在执行路由时,具有相同路由ID的另一个路由将覆盖原始路由(让我们称之为RouteA')。 RouteA的执行会怎样?我会看到什么样的行为?

我可以想象以下3种情况之一:

  1. RouteA请求 - >后端 - > RouteA'覆盖RouteA - > RouteA响应
  2. RouteA请求 - >后端 - > RouteA'覆盖RouteA - > RouteA'回复
  3. RouteA请求 - >后端 - > RouteA'覆盖RouteA - > 例外
  4. 谢谢!

    找到我的答案

    当您添加具有相同routeId的路由时,它将尝试执行:

    1. stopRoute(路由ID)
    2. 然后应用正常关闭策略。
    3. removeRoute(路由ID)
    4. 应用上述算法后,它将使用相同的routeId
    5. 添加新路由

      我本质上是想了解camel中的关闭策略是什么,在DefaultShutdownStrategy.java下的源代码中有详细解释,请参阅: https://github.com/apache/camel/blob/3c0b7d0367c10379bbb09a0d0bb56197885b5a51/camel-core/src/main/java/org/apache/camel/impl/DefaultShutdownStrategy.java#L85

0 个答案:

没有答案