这是用户在 2024-3-28 21:54 为 https://camel.apache.org/manual/lifecycle.html 保存的双语快照页面,由 沉浸式翻译 提供双语支持。了解如何保存?

 骆驼生命周期


Camel 使用一个名为 Service 的简单生命周期接口,其中包含 start()stop() 方法。


Camel 的许多类都实现了 Service ,例如 CamelContext 以及所有 ComponentEndpoint 类。


使用 Camel 时,通常需要启动 CamelContext ,它将启动所有组件和端点,并激活路由规则,直到上下文再次停止。

 camelcontext 生命周期


CamelContext 提供了控制其生命周期的方法:

  • build

  • init

  • start

  • stop

  • suspend

  • resume


这些操作是成对的:启动/停止和挂起/恢复。


Stop 正在执行优雅关机,这意味着所有内部状态、缓存等都已清除;路由正在以优雅的方式停止,以确保报文有时间完成。


如果在停止后启动 CamelContext ,则会执行冷启动,重新创建所有状态、缓存等;这并不能保证再次正确启动。相反,您可以使用挂起/恢复操作。它们将使 CamelContext 保持热状态,并使用相同的优雅关机功能暂停/停止路由。这将确保信息有足够时间完成。


如果要临时停止 Camel 应用程序,建议最终用户使用暂停/恢复功能。


JMX 中也提供了所有这些操作,因此您可以通过 JMX 管理控制 Camel。

 服务周期


如下图所示,Camel 中的服务( org.apache.camel.Service )遵循以下生命周期状态:

image


org.apache.camel.support.service.ServiceSupport 是扩展自定义服务的良好基类,因为它提供了跟踪状态的基本功能。您可以在 doStartdoStop 中实现自定义逻辑。, doStop, doSuspenddoResume 方法中实现自定义逻辑。


服务可通过 org.apache.camel.SuspendableService 最佳地支持挂起/恢复。.这意味着 Camel 中并非所有服务都支持暂停。我们鼓励消费者支持暂停,这样就可以暂停/恢复路由。