Размер сообщения SpringIntegration большой, как разделить - PullRequest
0 голосов
/ 29 сентября 2011

У меня есть система SprintIntegration с конечной точкой JMS.Ограничение размера сообщений составляет 4 МБ.У меня есть результаты, которые больше, чем, как я могу заставить SI разделить это на несколько сообщений?

/ A

1 Ответ

2 голосов
/ 08 октября 2011

В 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 s из списка.

...