我已按如下方式设置聚合器。
LevelDBAggregationRepository repository = new LevelDBAggregationRepository(REPO_NAME, repoLocation+"/"+REPO_NAME+".dat");
repository.setUseRecovery(true);
repository.setMaximumRedeliveries(3);
repository.setRecoveryInterval(3000);
repository.setDeadLetterUri("mock:dead");
from(UPDATE_ENDPOINT)
.aggregate(header("fileId"), new ESSessionAggregationStrategy()) // aggregates into an arraylist
.aggregationRepository(repository)
.completionPredicate(constant(false))
.to("es://bulk") // my elasticsearch component
我通过发送带有标题Exchange.AGGREGATION_COMPLETE_ALL_GROUPS = true的消息来刷新所有聚合。
如果elasticsearch组件不可用,我想停止包含存储库中所有消息的路由。基本上我不希望任何消息被移动到DeadLetter队列