SpringIntegration消息大小太大,如何拆分

发布于 2024-12-06 22:30:44 字数 95 浏览 2 评论 0原文

我有一个带有 JMS 端点的 SprintIntegration 系统。消息的大小限制为 4mb。我的结果比这个大,我如何让 SI 将其分成几条消息?

/一个

I have a SprintIntegration system with a JMS endpoint. The size limit for messages is 4mb. I have results which are larger then that, how do I get SI to split that up into several messages?

/A

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

長街聽風 2024-12-13 22:30:45

在 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

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

In Spring Integration, you can use a Splitter to split your messages to not exceed e.g. 4MB.

<int:splitter id="splitter" 
              ref="splitterBean" 
              method="split" 
              input-channel="inputChannel" 
              output-channel="outputChannel" />

<beans:bean id="splitterBean" class="your.MessageSplitter"/>

or by using a @Splitter annotation.

When a message comes in to the splitter, you would apply the splitting logic inside your.MessageSplitter, and return a 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 would take this list and would forward YourMessages from the list one by one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文