【问题标题】:Message duplication when starting not initialized route (noAutoStartup), then stoping and starting again启动未初始化路由(AutoStartup)时消息重复,然后停止并重新启动
【发布时间】:2018-01-20 12:42:07
【问题描述】:

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

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

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

我尝试添加 ServiceHelper.startService(consumer) 和 ServiceHelper.stopService(consumer) 没有效果。

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

骆驼 2.19.4; 2.20.1

【问题讨论】:

    标签: apache-camel hazelcast


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 1970-01-01
      • 2017-09-02
      • 1970-01-01
      相关资源
      最近更新 更多