Netty 4.0 SO_Keeplive一个连接向服务器发送多个请求如何同时处理请求

时间:2015-04-29 07:10:18

标签: sockets concurrency netty

一个连接向服务器发送许多请求

如何同时处理请求。

请在netty.io中使用像timeserver或echoserver这样的简单示例 说明操作。

1 个答案:

答案 0 :(得分:0)

我能找到的一种方法是创建一个单独的线程处理程序,它将以生产者/消费者的方式调用。

制作人将是您的网络"处理程序,向消费者发送消息,因此不等待任何wanswear,然后能够继续下一个请求。

消费者将成为您的业务"处理程序,每个连接一个,但可能是多线程的,消耗多个实例消息,并能够使用Netty的上下文从它所连接的连接回答。

消费者的另一个选择是只有一个处理程序,仍然是多线程的,但随后消息将与原始Netty的上下文一起进入,这样它就可以回应客户端,无论连接是什么。

但困难很快就会到来:

  • 如何在客户端的多个请求中处理answear:假设客户端发送3个请求A,B和C,并且由于业务处理程序的速度,answears将返回,如C,A ,B ......你必须处理它,并知道答案是哪个请求。

  • 如果您不想有太多错误,您必须确保参数中给出的上下文的所有方式仍然有效(频道有效)。

也许最好的方法是按顺序处理您的请求(如Netty所做的那样),并尽快保持answear的行动。