消息路由器用例
Message Router Use Case
我是消息传递和集成方面的新手。当我试图了解 Apache Camel 如何使 EIP 变得简单时,消息路由器引起了我对一个特定场景的注意,在该场景中,它使用来自一个队列的消息并根据谓词传输到其他队列。
这是我的问题:
- 为什么要使用消息路由器来执行此任务?
- 为什么消息Producer不直接向右发送消息Queue/Destination?
- 为什么消费者不能依靠消息选择器来做同样的事情?
有人可以分享您对现实生活用例的看法吗?
好吧,您的问题更多是关于 SoC 而不是消息传递。
Message Router 是一个 EIP,可以 很好地完成这个任务,使用 Camel 也很容易实现,但是当你写的时候,有还有其他可能性。
如果消息生产者(客户端)将消息直接发送到最终目的地,它必须知道所有可能的信息目的地。每当目的地 added/removed 或更改时,它 也必须更改 。这是紧耦合,在大多数情况下是不可取的。
如果消息接收者使用消息选择器消费,客户端可以将所有消息发送到同一个队列。这完全没问题,您可以使用不同的选择器实现单个消费者。 Broker 的选择器功能基本上使您能够 "divide a queue into multiple queues"。
因此,如果您想实施和运行客户端和接收方之间的中间集成组件,您可以在该组件中使用消息路由器。
如果你想省略这个集成组件,你可以使用消息选择器来实现单独的接收器并相互解耦。
我是消息传递和集成方面的新手。当我试图了解 Apache Camel 如何使 EIP 变得简单时,消息路由器引起了我对一个特定场景的注意,在该场景中,它使用来自一个队列的消息并根据谓词传输到其他队列。
这是我的问题:
- 为什么要使用消息路由器来执行此任务?
- 为什么消息Producer不直接向右发送消息Queue/Destination?
- 为什么消费者不能依靠消息选择器来做同样的事情?
有人可以分享您对现实生活用例的看法吗?
好吧,您的问题更多是关于 SoC 而不是消息传递。
Message Router 是一个 EIP,可以 很好地完成这个任务,使用 Camel 也很容易实现,但是当你写的时候,有还有其他可能性。
如果消息生产者(客户端)将消息直接发送到最终目的地,它必须知道所有可能的信息目的地。每当目的地 added/removed 或更改时,它 也必须更改 。这是紧耦合,在大多数情况下是不可取的。
如果消息接收者使用消息选择器消费,客户端可以将所有消息发送到同一个队列。这完全没问题,您可以使用不同的选择器实现单个消费者。 Broker 的选择器功能基本上使您能够 "divide a queue into multiple queues"。
因此,如果您想实施和运行客户端和接收方之间的中间集成组件,您可以在该组件中使用消息路由器。
如果你想省略这个集成组件,你可以使用消息选择器来实现单独的接收器并相互解耦。