Camel中的wireTap和多播的默认行为似乎相似。这两者都有助于以不同方式处理相同的消息。 那么wireTap和组播之间的主要区别是什么?
答案 0 :(得分:6)
@Srikanth -
我认为你不能通过使用wireTap实现并发性
这不太正确。并发将与WireTap一起使用,以及与并行处理的多播一起使用。
这是WireTap的主要目的。作为在主线程之外进行日志记录或审计的示例,不要使主线程慢,以进行非功能操作。
区别在于:
WireTap是“单向分叉”。消息转到与主线程并行的不同线程中的线控端点,并且无法从主线程获得响应。
此外,还可以发送到主体,标题等以外的有线端点。
使用Multicast,可以在并行或顺序处理后在主线程中“拆分然后聚合”结果。
此外,不限制多播端点的数量,而WireTap只能发送一个端点。
答案 1 :(得分:1)
Multicat :Multicast EIP在将同一邮件的副本发送到多个时允许并发 收件人。
WireTap :Wire Tap(来自EIP模式)允许您在将消息转发到最终目的地时将消息路由到单独的位置。
我不认为您可以通过使用wireTap并行向多个收件人发送邮件来实现并发。
答案 2 :(得分:1)
当主流继续时,wireTap组件将消息发送到一条路由。
多播路由器通过多个路由发送消息,并在主流可以继续下一个消息处理器之前等待所有路由继续。
对于旧的且已弃用的多播路由器,它同步发生,这意味着主流必须等待所有路由执行时间的总和。
在3.5中引入了一个新的多播路由器,该路由器执行相同的操作,但并行执行,使主流仅用于最慢的路由。