我有一个带有JMS端点的SprintIntegration系统。消息的大小限制为4mb。我有比那更大的结果,我如何让SI将其分成几条消息?
/ A
答案 0 :(得分:2)
在Spring Integration中,您可以使用Splitter将邮件拆分为不超过,例如4MB。
<int:splitter id="splitter"
ref="splitterBean"
method="split"
input-channel="inputChannel"
output-channel="outputChannel" />
<beans:bean id="splitterBean" class="your.MessageSplitter"/>
或使用@Splitter
注释。
当消息进入拆分器时,您将在your.MessageSplitter
内应用拆分逻辑,并返回List<YourMessage>
:
public class MessageSplitter {
public List<YourMessage> split( HugeMessage hugeMessage ) {
List nicelySizedMessages = new ArrayList<YourMessage>();
// splitting logic... that would parse "hugeMessage" and split it to
// nicelySizedMessages.add( ... ) "YourMessage"s
return nicelySizedMessages;
}
}
Spring Integration将采用此列表,并逐一从列表中转发YourMessage
。