在 Camel 中跟踪流消息
Tracing stream messages in Camel
在我的项目中使用 Apache Camel 进行消息路由。来自某些节点的消息需要跟踪。为此,我使用了 BacklogTracer 的实例。没关系,只要传递的消息不是 InputStream。在这种情况下,收到以下字符串:
[Body is instance of java.io.InputStream]
跟踪流使用了键“isBodyIncludeStreams”。现在我从 InputStream 收到一条消息,但现在读取了一个流,并且路由丢失了一条消息以供进一步处理。
所以,问题是,我怎样才能跟踪来自 InputStream 的消息而不丢失它们?
BacklogTracer 实例:
val tracer = camelContext.defaultBacklogTracer as BacklogTracer
tracer.isEnabled = true
tracer.isBodyIncludeStreams = true
Apache 骆驼版本:2.24.0
为了不丢失流,需要开启流缓存:
camelContext.isStreamCaching = true
另外,这里还有一些缓存策略的配置:
https://camel.apache.org/manual/latest/stream-caching.html
在我的项目中使用 Apache Camel 进行消息路由。来自某些节点的消息需要跟踪。为此,我使用了 BacklogTracer 的实例。没关系,只要传递的消息不是 InputStream。在这种情况下,收到以下字符串:
[Body is instance of java.io.InputStream]
跟踪流使用了键“isBodyIncludeStreams”。现在我从 InputStream 收到一条消息,但现在读取了一个流,并且路由丢失了一条消息以供进一步处理。
所以,问题是,我怎样才能跟踪来自 InputStream 的消息而不丢失它们?
BacklogTracer 实例:
val tracer = camelContext.defaultBacklogTracer as BacklogTracer
tracer.isEnabled = true
tracer.isBodyIncludeStreams = true
Apache 骆驼版本:2.24.0
为了不丢失流,需要开启流缓存:
camelContext.isStreamCaching = true
另外,这里还有一些缓存策略的配置:
https://camel.apache.org/manual/latest/stream-caching.html