Camel的生命周期,是实现一个名为Service的接口,这个接口有两个方法start(),stop()。

多种多样的类,实现Service接口,就如同内置了多种组件和endpoint的CamelContext一样。

在使用camel时,通常要通过调用start方法启动所有的组件和endpoint并保持激活他们,知道stop方法调用后,停止这些组件和endpoint。

1.camelContext的生命周期:

CamelContext提供四个方法来控制生命周期:start(),stop().suspend(),resume().

stop执行一种柔性shutdown,这种停止会清除camelContxt中存储的状态和缓存。路由通过这种方式来停止,是为了确保给消息足够的时间来完成传输。如果在停止后再启动CamelContext,它将以cold方式启动,也就是会重载所有的状态和缓存。

也可以使用suspend和resume来控制CamelContext。这两个方法可以让camelcontext保持“暖”状态,只有挂起/停止的router使用柔性shutdown,而整个camelContext不会。

如果用户只是临时停止camel,建议使用suspend和resume。

所有这些操作在JMX中可用,所以你也可以从管理控制台控制camel。

2.Service的生命周期:

Camel中的服务的生命周期状态如下图:

如上图所示:在camel中,能够最佳支持suspend的是SuspendableService。这也即是说不是所有的Service都支持可suspend的。suspend是被鼓励使用的。

3.router的生命周期

camel中的router有以下操作提供编程人员控制器生命周期:

start,stop,suspend,resume,remove。

这些操作顾名思义,就不再赘述了。