Camel-netty4:如何在发送下一个请求之前等待响应

时间:2018-05-17 09:21:13

标签: apache-camel netty

我已经创建了接受来自多个生产者的请求的路由,并通过使用带有请求 - 响应的netty4发送到远程服务器。但是,当camel向远程服务器发送请求并等待响应时,接收到下一个传入请求并希望发送到远程服务器但由于camel无法接收响应而得到IOException。

那么,如何设置Camel-Netty4发送请求并在下一次发送之前等待响应。

路线配置: 从(“直接:DirectProcessOut块=真”) 。要( “netty4:TCP://192.168.1.2:8000同步=真安培;同步=真安培; reuseChannel =真”)

1 个答案:

答案 0 :(得分:0)

我实际上遇到了类似的问题,试图根据数据库表中的行一次发送几条消息。这些电话不会等待彼此完成,并且基本上相互踩在一起并挂起或炸毁。

我最终找到的解决方案是使用消息队列。接收您的请求并将它们路由到单个activemq路由。

类似于:

<camelContext xmlns="http://camel.apache.org/schema/blueprint">
    <route>
       <from uri="direct:direct:DirectProcessOut"/>
       <to uri="activemq://processOutQueue"/>
    </route>
</camelContext>
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
    <route>
       <from uri="activemq://processOutQueue"/>
       <to uri="netty4:tcp://192.168.1.2:8000?sync=true&amp;synchronous=true&amp;reuseChannel=true"/>
    </route>
</camelContext>

我的情况略有不同,所以我不确定这是否会保留您要发送的邮件。但希望它能给你一个开始的地方。