Apache camel 使用camel-JMS进行流式处理

Apache camel 使用camel-JMS进行流式处理,apache-camel,jms,hornetq,fuseesb,Apache Camel,Jms,Hornetq,Fuseesb,我有一个将消息放入JMS队列的应用程序。消息大小可以高达150MB。JMS消息包含字节数组数据,附加元数据为xml,消息放入队列后,camel route应用程序将拾取消息并使用消息调用外部java api。我希望使用camel JMS组件从JMS队列流式传输消息。 你能告诉我,如果我可以实现它使用骆驼。 目前我面临堆错误问题 JMS消息示例如下所示 <request> <esb-metadata> <source-transaction-i

我有一个将消息放入JMS队列的应用程序。消息大小可以高达150MB。JMS消息包含字节数组数据,附加元数据为xml,消息放入队列后,camel route应用程序将拾取消息并使用消息调用外部java api。我希望使用camel JMS组件从JMS队列流式传输消息。 你能告诉我,如果我可以实现它使用骆驼。 目前我面临堆错误问题

JMS消息示例如下所示

<request>
    <esb-metadata>
        <source-transaction-id>1234567890</source-transaction-id>
        <environment>Dev</environment>
        <message-type>REQ</message-type>
        <source-id>12345678</source-id>
        <master-id>mst-id1234</master-id>
    </esb-metadata>
    <message-body>
        <parameters>
            <info>
                <document-class>Document</document-class>
                
                <document-guid>idd_C0A5DF59-0000-C51C-BCDA-E76E9476D5C2</document-guid>
            </info>
        </parameters>   
        <document>
            <document-mime-type>std/text</document-mime-type>
            <document-content>SGVhZGluZzEgQ2hhbmdlZCB0b2RheSBKYW4gMTEgc2FtcGxlIHRleHQgYmVsb3csDQpPbmNlIEkg
cmVjZWl2ZSB0aGlzIGluZm9ybWF0aW9uLCBJIHdpbGwgdGhlbiBjb250YWN0IHlvdSBpbW1lZGlh
dGVseSB0byBkaXNjdXNzIHRoZSByZXNvbHV0aW9uIG9mIHlvdXIgY2xhaW0uDQoNCg0KSGVhZGlu
ZzIgc2FtcGxlIHRleHQsDQpJZiBwb3NzaWJsZSwgSSBuZWVkIHRvIHJlY2VpdmUgdGhpcyBpbmZv
cm1hdGlvbiBmcm9tIHlvdSB3aXRoaW4gMzAgRGF5cy4NCg0KMQkxCTENCjIJMgkyDQozCTMJMw0K
NAk0CTQNCg0KSGVhZGluZzMgc2FtcGxlIHRleHQsDQpJIHdpbGwgYXNzdW1lIHlvdSBkbyBub3Qg
d2lzaCB0byBwdXJzdWUgdGhpcyBjbGFpbSBhbmQgSSB3aWxsIGNsb3NlIG15IGZpbGUuDQpBRERF
RCBUSElTIE5FVyBMSU5FIFRPIFNFRSBJRiBJVCBJUyBWSVNJQkxFDQoNCnRhYmxlIHN0YXJ0cyBo
ZXJlDQpwb2xpY3kgbnVtYmVyCWNsYWltIG51bWJlcglpbnN1cmVkDQpwMTIzCWMxMjMJYm9zY2gN
CnAzMjEJYzMyMQlibXcNCnRhYmxlIGVuZHMgaGVyZQ0KDQomIzk2Nzk7CUJ1bGxldCBwb2ludCAx
DQomIzk2Nzk7CUJ1bGxldCBwb2ludCAyDQomIzk2Nzk7CUJ1bGxldCBwb2ludCAzDQoNCjEuCU51
bWJlcmVkIHBvaW50IDENCjIuCU51bWJlcmVkIHBvaW50IDINCjMuCU51bWJlcmVkIHBvaW50IDMN
Cg==        </document-content>
        </document>
    </message-body>
</request>

1234567890
发展
请求
12345678
mst-id1234
文件
idd_C0A5DF59-0000-C51C-BCDA-E76E9476D5C2
标准/文本
SGVHZGLUZEGQ2HHBMDLZCB0B2RHESBKYW4GMTEGC2FTCGXLIHRLEHQGYMVB3CSDQPPBMNLIEKG
CMVJZWL2ZSB0AGLZIGLUZM9YBWF0AW9ULCBJIHDPBGWGDGHLBIBJB250YWN0IHLVDSBPW1LZGLH
DGVSESB0BKAXNJDXNZHIHROSBYZXNVBHV0AW9UIG9MIHLVDXIGY2XHAW0UDQONCG0KSGVHZGLU
ZZIGC2FTCGXLIHRLEHQSDQPJZIB3NZAWJSZSWGSBUZWVKIHRVIHJLY2VPDMUGDGHPCYBPBMZV
CM1HDGLVBIBMCM9TIHLVDSB3AXROAW4GMZARGF5CY4NCG0KMQKXCTENCJIJMKYDQOZCTMJMW0K
NAK0CTQNCG0KSGVHZGLUZMGC2FTCGXLIHRLEHQSDQPJIHDPBGWGYXNZDW1LHLVDSBKBYBUB3QG
D2LZACB0BWDXJZDWUGDGHPYBJBGFPBSBHBMQGSSB3AWXSIGNSB3NLIG15IGZPBGUUDQPBREF
Rcbuseltie5FvYBMSu5FirpIfNfRbjRbjVcUyBwSvNjQKxFdQonCnRhymXLiHn0YxJ0cYbo
ZXJLDQPWB2XPY3KbNvTymVyCwnSYWLTIG51BWJLCGLPBNN1CMvKDQPWMTIZCWMXMJYM9ZY2GN
CNAZMJYZMYMQLIBxCncnRhymxligvuzhmgagVyzQ0KDQOMIZK2NZK7CuJ1bgxldcbwb2Ludcax
DQOMIK2NZK7CUJ1BGXLDCBWB2LUDCAYDQOMIK2NZK7CUJ1BGXLDCBWB2LUDCAZDQONCJEUCU51
BWJLCMVKIHBVAW50IdencJiuCu51BWJLCMVKIHBVAW50IdincMucu51BWJLCMVKIHBVAW50Idmn
Cg==

HornetQ支持流式传输大型消息,这样客户端就不必担心内存限制了。这种支持在HornetQ JMS实现中起作用,但JMS API不直接支持流式传输大型消息,因此标准JMS组件(例如Camel提供的组件)可能无法用于此用例。您需要使用专门为支持HornetQ实现而编写的组件。您可以阅读HornetQ JMS客户端如何在中流式传输大型消息。

HornetQ支持流式传输大型消息,这样客户端就不必担心会遇到内存限制。这种支持在HornetQ JMS实现中起作用,但JMS API不直接支持流式传输大型消息,因此标准JMS组件(例如Camel提供的组件)可能无法用于此用例。您需要使用专门为支持HornetQ实现而编写的组件。您可以阅读HornetQJMS客户机如何以流式方式传输大型消息