Apache camel 一个osgi模块中有多个上下文-需要注意什么?

Apache camel 一个osgi模块中有多个上下文-需要注意什么?,apache-camel,osgi,Apache Camel,Osgi,应用程序有几个camel上下文,每个上下文做自己的事情,因此不需要彼此通信。它们位于同一模块中,因为它们共享一些类 在单个osgi模块中存在多个上下文的情况下,是否有需要注意的问题 在这种情况下,建议和最佳做法是什么?这是相当主观的。IMHO:要考虑的两件大事是过程控制和升级影响。请记住--在捆绑包升级过程中,所有上下文都将停止,然后重新启动 您仍然能够在驼峰上下文和路由级别执行细粒度过程控制(启动、停止、暂停、恢复),而不必依赖于bundle start | stop 如果您想要细粒度的升级能

应用程序有几个camel上下文,每个上下文做自己的事情,因此不需要彼此通信。它们位于同一模块中,因为它们共享一些类

在单个osgi模块中存在多个上下文的情况下,是否有需要注意的问题


在这种情况下,建议和最佳做法是什么?

这是相当主观的。IMHO:要考虑的两件大事是过程控制和升级影响。请记住--在捆绑包升级过程中,所有上下文都将停止,然后重新启动

您仍然能够在驼峰上下文和路由级别执行细粒度过程控制(启动、停止、暂停、恢复),而不必依赖于bundle start | stop


如果您想要细粒度的升级能力,您可以将Java类放在它们自己的包中,导出包。然后将Camel上下文放在它们自己的包中,并从共享包导入Java类。然后,您就可以对Camel上下文进行单独升级,而不必同时升级所有上下文(并强制所有上下文停止)。

这是相当主观的。IMHO:要考虑的两件大事是过程控制和升级影响。请记住--在捆绑包升级过程中,所有上下文都将停止,然后重新启动

您仍然能够在驼峰上下文和路由级别执行细粒度过程控制(启动、停止、暂停、恢复),而不必依赖于bundle start | stop


如果您想要细粒度的升级能力,您可以将Java类放在它们自己的包中,导出包。然后将Camel上下文放在它们自己的包中,并从共享包导入Java类。然后,您就可以对Camel上下文进行单独的升级,而不必一次升级所有上下文(并强制所有上下文停止)。

一个建议:使用无状态的bean/processors/aggregators

有关正文处理的所有与状态相关的信息必须位于Exchange标头/属性中

static final
常量很好。

配置只读属性也很好。

有一个建议:使用无状态的bean/processors/aggregators

有关正文处理的所有与状态相关的信息必须位于Exchange标头/属性中

static final
常量很好。
配置只读属性也很好