过滤聚合后如何重新排序/ Spring Integration /

费伦茨·图里(Ferenc Turi)

我正在Spring Integration中进行项目,但遇到了很大的问题。流程中有一些过滤组件,稍后在流程中我有一个聚合元素。

问题是过滤组件不支持“应用顺序”属性。它在不修改原始序列号的情况下过滤掉一些记录,但是减少了消息数。在流程的稍后部分,我需要一个聚合,由于某些消息被滤除,因此无法释放元素。

我不想使用任何具有apply-sequence属性的特殊路由元素。您能建议我解决此类过滤问题的任何常见解决方案吗?

谢谢,

阿尔特姆·比兰(Artem Bilan)

我会说您误解了filter的行为aggregator

我猜您apply-sequence上游有一些感知组件。因此,该组中的所有消息都接受多个标头-correlationId默认情况下 将消息分组aggregatorsequenceNumber-index消息的;sequenceSize-组中的邮件数。

Filter只是检查消息是否存在某种情况,然后将其发送到“outpu-channel或”discard逻辑。它不会修改消息。但是,即使我们可以做到,但这听起来也不是很好。

假设组中只有两条消息。首先可以进行过滤-我们只需将其发送到即可aggregator但是第二个被丢弃了,是的,它不会被发送到聚合器。最后一个永远不会释放该组,因为sequenceSize没有达到。

为了克服你的要求,你需要有一些自定义ReleaseStrategyaggregator(默认情况下它是SequenceSizeReleaseStrategy)。例如,要检查系统中的某些状态,以确保该组中的所有消息均独立于发送true在发送false之后发送filterfake出于相同原因收到一些消息,然后在组中检查其可用性。

在这种情况下,您只需要注意correlationId在聚合器中对消息进行分组即可。

更新

对于这种情况,建议的发布策略是什么?使用超时作为发布策略是一个好策略吗?

我可以说,有时候对于某些集成方案来说很难找到好的解决方案。消息传递是stateless天生的,因此要关联和分组数量不确定的消息可能是个问题。

需要查看需求和环境。

例如,当所有消息都在单个线程中处理时,您可以安全地将一些fake标记消息直接直接发送到aggregator并从中进行检查ReleaseStrategy即使该群组中的所有消息都可能被丢弃,它也将起作用。

如果您并行处理这些消息,或者它们是从不同的线程接收的,则您实际上将无法确定消息的顺序和每个进程的时间。

在这种情况下,TimeoutCountSequenceSizeReleaseStrategy确实可以提供帮助。当然,需要根据您的系统要求找到合适的时间表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何配置Spring Integration?

来自分类Dev

Spring Integration过滤器

来自分类Dev

Spring Integration轮询聚合器以编程方式

来自分类Dev

如何在Spring Integration中运行并行聚合器?

来自分类Dev

Spring Integration XSD验证过滤器

来自分类Dev

拆分后的Spring Integration处理异常

来自分类Dev

Spring Integration和Kafka:如何根据消息头过滤消息

来自分类Dev

如何避免在Spring Integration中扫描或过滤特定目录?

来自分类Dev

Spring Integration的异步发布-订阅如何工作?

来自分类Dev

如何使用Spring Integration DSL配置StepExecutionListener

来自分类Dev

如何使用Spring Integration逐行读取文件

来自分类Dev

Spring Integration如何与Web Service(Jersey)交互?

来自分类Dev

如何停止或更改 Spring Integration Poller 的延迟

来自分类Dev

Spring Integration WS || 如何为Spring Integration Ws Service创建xsd文件和wsdl文件

来自分类Dev

Spring Integration-拆分器/聚合器-格式错误

来自分类Dev

Spring-Integration聚合器无法正常工作。

来自分类Dev

Spring Integration Java DSL-聚合器的配置

来自分类Dev

使用Regex的Spring Integration Xpath过滤器

来自分类Dev

通过Spring Integration中的Rest响应过滤消息

来自分类Dev

Spring Integration消息重新交付最佳实践

来自分类Dev

Spring Integration编组后找不到SOAP标头

来自分类Dev

Spring Integration编组后找不到SOAP标头

来自分类Dev

Mule ESB与Spring Integration

来自分类Dev

Spring Integration Reactor配置

来自分类Dev

Spring Integration错误日志

来自分类Dev

Spring Integration jsonignore属性

来自分类Dev

Spring Integration Bean错误

来自分类Dev

Spring Integration HTTP

来自分类Dev

Spring Integration Java配置

Related 相关文章

热门标签

归档