我们有一个Spring Integration应用程序,它从数据库中进行轮询,将marshalls转换为XML,然后将该XML作为消息发送到下游系统。该应用程序可行,但我们面临的问题是某些结果集可能很大。在这种情况下,Spring Integration似乎无法处理转换,因为结果集太大而无法在内存中处理。我没有在Spring Integration中看到Stax marshaller,就像Spring Batch中所说的那样。这实际上是有道理的,因为消息传递通常意味着处理许多小消息而不是大文件。
我们的一个选择是开发一个Spring Batch应用程序。
我们可以采用Spring Integration来设计这个设计吗? Spring Integration是否有任何流媒体概念?例如,是否可以以块的形式读取结果集,将每个部分和每个部分转换为单独的消息,这是一个集合的一部分?或者Spring Batch是否更适合?
非常感谢
答案 0 :(得分:0)
您可以设置max-rows-per-poll
以限制每个结果集的大小。
如果这不实用,那么您可以结合使用Spring Batch和Spring Integration - 让批ItemWriter
通过<gateway/>
将块发送到Spring Integration流中。