Netty 4.0服务器,它为每个传入请求发出两个出站请求,并使用出站请求的响应来形成对原始入站请求的响应。如果成功,则出站1响应用于构建出站2请求。
请参见此处的图表:https://twitter.com/puffybsd/status/437652876928626688/photo/1
这就是我现在正在做的事情(仅用1个远程主机进行测试):
SimpleInboundChannelHandler<FullHttpRequest>
调用HandlerA
的管道创建标准ServerBootstrap。HandlerA
收到channelActive
事件时,创建一个新的Bootstrap,注册一个新的Handler,HandlerB
,打开与第一个远程主机的连接并存储通道{{1}在变量ChannelB
。HandlerA
收到HandlerA
事件时,从read0
对象中提取参数,构建FullHttpRequest
对象并将其存储在FullHttpResponse
的属性中变量以及当前上下文。ChannelB
从远程主机1收到HandlerB
时,从FullHttpResponse
属性集中提取原始上下文和FullHttpResponse
对象。ChannelB
并将其写入原始上下文的频道。这似乎有效。尚未添加第二个远程主机呼叫。两个后端远程主机不会更改 - 它们始终是相同的地址。当有新的客户端请求,向后端发送请求,然后在收到来自后端的响应时向客户端发送响应时,它看起来正在做的是向后端打开套接字。
以下是一些代码:
FullHttpResponse
以下是问题: