首页 文章

我可以在流媒体时依赖CamelSplitComplete吗?

提问于
浏览
0

我们有一个处理大文件的过程 . 我们正在使用分离器并使用 streaming() .

docs

流媒体如果启用,则Camel将以流式方式分割,这意味着它将以块的形式分割输入消息 . 这减少了内存开销 . 例如,如果您拆分大消息,建议启用流式传输 . 如果启用了流式传输,则子消息回复将无序聚合,例如按照它们返回的顺序聚合 . 如果禁用,Camel将按照拆分的顺序处理子消息回复 .

所以我知道交换可以不按顺序聚合 . 那么拆分器是否标记了它处理的最后一个交换,并将CamelSplitComplete设置为true?如果是这样,那么它可能会无序聚合,在我汇总所有消息之前,我最终会考虑完成聚合 . 这将导致数据丢失 .

相反,只有当它知道它是最后一个聚合时才标记交换CamelSplitComplete,那么我相信我可以依赖它 .

更新:假设在上述情况下依赖CamelSplitComplete是安全的,如果我的路由进行过滤,依赖它是否安全?我假设没有,因为最后一行可能符合过滤条件并被删除 .

1 回答

  • 1

    我已经完成了使用流式传输的大文件分割,并且我已经使用CamelSplitComplete属性在分割完成后进行一些处理 . 所以是的,你可以依靠它作为最后的交换 . 当然,最好有一个Camel单元测试来验证测试 . 但它对我有用 . 我不能说过滤器,因为如果过滤掉最后一次交换怎么办?

相关问题