繁体   English   中英

Spring 集成:在聚合器中保留排序

[英]Spring Integration: Preserving ordering in an Aggregator

现在我有一个用例,其中我有一个 stream 事件进入。有一些拆分器,然后最终下游聚合器。 由于 stream 永无止境,并且由于拆分器的数量,我们无法计算出我们预期的消息总数。 但是我们使用了一个简单的 SpeL 发布策略表达式:

<release-strategy-expression="size() == 10"/>

我们正在使用group-timeout ,并且还设置了send-partial-result-on-expiry=true

鉴于此用例,我是否可以得出正确的结论,即没有内置方法可以保留事件 stream 的原始顺序?

我尝试使用将releasePartialSequences设置为 true 的SequenceSizeReleaseStrategy

我观察到的是,这会将每条消息作为一个单独的组发送,因为它依赖于默认为零的组大小header。

我错过了什么吗? 给定这个用例,有没有办法保留聚合器中的排序?

为此,有一个 EI 模式重resequencer器: https://docs.spring.io/spring-integration/docs/5.3.0.M4/reference/html/message-routing.html#resequencer

因此,您将它放在聚合器之前,当聚合器发布一个组时,消息将按顺序出现在结果列表中。

如果序列中的所有间隙都得到满足,重测序器也可以释放部分组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM