现在,我有一个用例,其中有一个事件流。有几个拆分器,然后最后在聚合器的下游。由于流永远不会结束,并且使用拆分器的数量,我们无法计算我们期望的消息总数。但是,我们使用的是一个简单的SpeL发布策略表达式:
<release-strategy-expression="size() == 10"/>我们使用的是group-timeout,而且还设置了send-partial-result-on-expiry=true。
考虑到这个用例,我是否正确地得出结论:没有内置的方法来保存事件流的原始顺序?
我尝试使用SequenceSizeReleaseStrategy,releasePartialSequences设置为true。
我观察到的是,这是作为一个单独的组发送每个消息,因为它依赖于组大小的标头,默认为零。
我错过什么了吗?给定这个用例,是否有一种方法来保持聚合器中的顺序?
发布于 2020-04-07 13:56:16
为此,有一个EI模式resequencer:https://docs.spring.io/spring-integration/docs/5.3.0.M4/reference/html/message-routing.html#resequencer。
因此,您将其放在聚合器之前,当该聚合器释放一个组时,消息将按顺序列在结果列表中。
如果序列中的所有间隙都得到满足,则重新排序器也可以释放部分群。
https://stackoverflow.com/questions/61079777
复制相似问题