Asynchronous 基于Camel的异步非阻塞多播

Asynchronous 基于Camel的异步非阻塞多播,asynchronous,apache-camel,nonblocking,spring-camel,Asynchronous,Apache Camel,Nonblocking,Spring Camel,我有两个疑问: 1.我们可以在camel中使用非阻塞异步路由吗。我确实看到seda与async,但是如果将工作转移到其他阻塞的线程上。 2.如果是这样,我们可以在这样的路由中使用多播。 以下是我的多步骤骆驼路线,似乎有效。但不确定它是异步还是非阻塞异步 from("direct:multiStep") .to("bean:routeHandler?method=monoReturningMethod1") .process(new Unwrap

我有两个疑问: 1.我们可以在camel中使用非阻塞异步路由吗。我确实看到seda与async,但是如果将工作转移到其他阻塞的线程上。 2.如果是这样,我们可以在这样的路由中使用多播。 以下是我的多步骤骆驼路线,似乎有效。但不确定它是异步还是非阻塞异步

from("direct:multiStep")
             .to("bean:routeHandler?method=monoReturningMethod1")
             .process(new UnwrapStreamProcessor())
             .to("bean:routeHandler?method=monoReturningMethod2")
             .process(new UnwrapStreamProcessor())
上述工作和web请求都有来自
monoReturningMethod
的响应。在这种情况下,我想确保所有进程都是非阻塞的

对于多播,我正在试验以下路由。不确定将
解包流处理器放在何处
。我试图将它放在
end()
之后,但它不起作用。我需要定制的
处理器吗?或者如何将所有
Mono
返回绑定到一个

from("direct:incoming")
         .multicast()
         .parallelProcessing()
         .to("bean:routeHandler?method=monoReturningMethod1", "bean:routeHandler?method=monoReturningMethod2")
         .end()
我正在使用Apache3.0.1和SpringBootStarter

@Component("routeHandler")
public class RouteHandler {
     Mono<Entity> monoReturningMethod1(Exchange exchange) {
          //make some WebClient request which returns Mono.
     }
     Mono<Entity> monoReturningMethod2(Exchange exchange) {
          //make some WebClient request which returns Mono.
     }
}
@组件(“路由处理器”)
公共类路由处理器{
Mono monoReturningMethod1(交换){
//发出一些返回Mono的WebClient请求。
}
Mono monoReturningMethod2(交换){
//发出一些返回Mono的WebClient请求。
}
}
此路由处理传入的web请求。如何使所有路由处理无阻塞和异步。我尝试过在
monoReturningMethod
之后使用
过程(新的UnwrapStreamProcessor())
作为过程步骤,如果我按顺序操作,它就会工作。但它不适用于多播,并且不允许对原始消息进行覆盖。 有什么建议吗

PS:我正在启动异步流,如下所示:
producerTemplate.asyncSend(“RouteName”,exchange)

,异步路由引擎支持所有,但并非所有。某些组件的支持有限,即它们只能使用或生成异步

您可以在路由中使用告诉Camel,从转发点开始,消息应该在新线程中异步路由。

,异步路由引擎支持所有消息,但不支持所有消息。某些组件的支持有限,即它们只能使用或生成异步

您可以在路由中使用来告诉Camel,从转发点开始,消息应该在新线程中异步路由