296.4. Reply 使用请求

SEDA 组件支持使用 Request Reply,调用者将等待 Async 路由完成。例如:

from("mina:tcp://0.0.0.0:9876?textline=true&sync=true").to("seda:input");

from("seda:input").to("bean:processInput").to("bean:createResponse");

在上面的路由中,我们在端口 9876 上有一个 TCP 侦听器接受传入请求。该请求被路由到 seda:input 队列。由于它是 Request Reply 消息,我们会等待响应。当 seda:input 队列中的使用者完成时,它会将响应复制到原始消息响应。

注意

直到 2.2:只有使用请求超过 SEDA 或 VM 的 2 端点 才可用于 2 端点。您无法通过 发送到 A → B → C 等来链端点。仅在 A → B 之间。原因是实现逻辑非常简单。为了支持 3+ 端点,逻辑更加复杂,可以正确处理等待线程间的排序和通知。这个问题已在 Camel 2.3 开始进行了改进,这可让您像您这样一样链接多个端点。