精通Camel-2-Camel的生命周期
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。
这些操作顾名思义,就不再赘述了。
转载于:https://blog.51cto.com/nepoulia/553686