启动未初始化路由(noAutoStartup)时的消息重复,然后再次停止并重新启动

时间:2018-01-20 12:42:08

标签: apache-camel hazelcast

Apache Camel在以编程方式停止后启动路由(和使用者)是否合法?

我的路线没有自动启动(noAutoStartup())。 App也在使用Spring Boot。

现在,开始这条路线,停止并重新开始,导致消费者重复;在Hazelcast消费者身上观察到。

我尝试添加ServiceHelper.startService(使用者)和ServiceHelper.stopService(使用者),但没有效果。

我尝试使用camelContext.stopRoute(route.getId())和控制总线停止路由 - 效果相同。

Camel 2.19.4; 2.20.1

1 个答案:

答案 0 :(得分:0)

解决方案: 事实证明,HazelcastComponent无法停止,因为它会侦听来自Hazelcast的事件,并且在组件关闭期间不会取消注册此侦听器。

但是,此组件自2.20.x以来已弃用,其部分功能在HazelcastQueueComponent中可用。最后,处于POLL模式的HazelcastQueueConsumer尊重服务停止的事实。