Apache Camel在以编程方式停止后启动路由(和使用者)是否合法?
我的路线没有自动启动(noAutoStartup())。 App也在使用Spring Boot。
现在,开始这条路线,停止并重新开始,导致消费者重复;在Hazelcast消费者身上观察到。
我尝试添加ServiceHelper.startService(使用者)和ServiceHelper.stopService(使用者),但没有效果。
我尝试使用camelContext.stopRoute(route.getId())和控制总线停止路由 - 效果相同。
Camel 2.19.4; 2.20.1
答案 0 :(得分:0)
解决方案: 事实证明,HazelcastComponent无法停止,因为它会侦听来自Hazelcast的事件,并且在组件关闭期间不会取消注册此侦听器。
但是,此组件自2.20.x以来已弃用,其部分功能在HazelcastQueueComponent中可用。最后,处于POLL模式的HazelcastQueueConsumer尊重服务停止的事实。