我已经创建了接受来自多个生产者的请求的路由,并通过使用带有请求 - 响应的netty4发送到远程服务器。但是,当camel向远程服务器发送请求并等待响应时,接收到下一个传入请求并希望发送到远程服务器但由于camel无法接收响应而得到IOException。
那么,如何设置Camel-Netty4发送请求并在下一次发送之前等待响应。
路线配置: 从(“直接:DirectProcessOut块=真”) 。要( “netty4:TCP://192.168.1.2:8000同步=真安培;同步=真安培; reuseChannel =真”)
答案 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&synchronous=true&reuseChannel=true"/>
</route>
</camelContext>
我的情况略有不同,所以我不确定这是否会保留您要发送的邮件。但希望它能给你一个开始的地方。