我正在从兔子那里收集信息并汇总它们。我注意到即使使用autoAck = false,消息一旦聚合就会被激活。这意味着如果我的进程崩溃,则不会为rety重新排队消息。
我已经插入了leveldb java db作为解决问题的聚合repo,因为我认为它只会在汇总并存储在repo中时才会被激活?说实话,level-db根据它的活动和C版本的问题让我觉得不舒服,我猜我可以将它切换到SQL repo。
因此。问题是,有什么我可以做的,所以Camel只会在聚合消息完成其旅程后才会收到交换消息吗?在聚合之后,我的下一步是简单地写入磁盘。
答案 0 :(得分:0)
这是设计,然后聚合器是一个有状态的EIP。因此,传入的消息被移交给聚合器,然后继续,因此处理该消息的兔子消费者已经完成并被激活。
您需要插入持久聚合存储库。
由于你最后一步是写入磁盘,我会重新设计所以你从兔子那里取出每条消息并先写入磁盘,然后从磁盘再做一次 - >聚合 - >磁盘。