17.18. PAYLOAD 模式流支持
camel-cxf 组件现在支持在使用 PAYLOAD 模式时流传输传入的消息。在以前的版本中,传入的信息已被完全解析。对于大型消息,这需要消耗大量内存。传入消息可在路由期间保持为 javax.xml.transform.Source,如果没有修改有效负载,则可以直接流传输到目标目的地。对于常见的"简单代理"用例(例如: from ("cxf:…").to ("cxf:…"),这可提供显著的性能增加,以及显著降低的内存要求。
然而,在有些情况下,流性可能不适合或需要。由于流性,在稍后处理链中不会发现无效的传入 XML。另外,某些操作可能需要下载消息,如 WS-Security 或消息追踪(例如,流处理的优点)。此时,可以通过两种方式控制流:
- endpoint 属性:您可以添加 "allowStreaming=false" 作为端点属性,以打开/关闭流。
- component 属性:CxfComponent 对象也有一个 allowStreaming 属性,可为从该组件创建的端点设置默认值。
全局系统属性:您可以将 "org.apache.camel.component.cxf.streaming" 的系统属性添加到 "false" 以将它关闭。这将设置全局默认值,但上方设置 endpoint 属性将覆盖该端点的此值。