之间的确切区别是什么
from("stream:in")
.to("stream:out", "stream:err");
和
from("stream:in")
.multicast()
.to("stream:out", "stream:err");
答案 0 :(得分:4)
在这种情况下 - 没有真正的区别,因为stream
驼峰组件的传入消息体似乎总是作为传出消息体向前发送;)
想象一下更具实质性的案例,例如:
from("stream:in")
.to("direct:one", "direct:two");
在这种情况下,流上收到的任何内容都会首先发送到路由direct:one
。现在,如果该路由以某种方式修改消息(例如setBody(constant("modified"))
,则路由direct:two
将从路由direct:one
收到已修改的外发消息。
这样想:stream:in
- > direct:one
- > direct:two
。
<强>组播强>
from("stream:in")
.multicast()
.to("direct:one", "direct:two");
相反,对于多播,流上收到的任何内容都会首先发送到direct:one
,并且流中的相同邮件正文(作为副本)会发送到direct:two
- 无论是什么direct:one
设置为其外发邮件正文。
我们可以想到这样的多播:
stream:in -----> direct:one
\----> direct:two