Java 如何在Netty客户端中匹配请求响应?
我正在用Netty实现一个http客户端应用程序。任务是向多个端点发送相同的请求,并收集答案以供进一步处理。许多这样的请求可以并发发送到相同的端点。问题在于将从一个端点接收到的响应与请求相匹配 一种可能的解决方案是为每个请求创建一个新的处理程序(和管道),如下所述。在这种情况下,请求可以映射到处理程序,处理程序可以存储响应。但这意味着为每个请求创建新连接,这将降低性能Java 如何在Netty客户端中匹配请求响应?,java,multithreading,netty,Java,Multithreading,Netty,我正在用Netty实现一个http客户端应用程序。任务是向多个端点发送相同的请求,并收集答案以供进一步处理。许多这样的请求可以并发发送到相同的端点。问题在于将从一个端点接收到的响应与请求相匹配 一种可能的解决方案是为每个请求创建一个新的处理程序(和管道),如下所述。在这种情况下,请求可以映射到处理程序,处理程序可以存储响应。但这意味着为每个请求创建新连接,这将降低性能 我也不想更改协议,在请求/响应中包含请求ID只是为了匹配。如果客户端和服务器都遵守HTTP管道语义,那么服务器必须按顺序响应请求
我也不想更改协议,在请求/响应中包含请求ID只是为了匹配。如果客户端和服务器都遵守HTTP管道语义,那么服务器必须按顺序响应请求。因此,对于每个连接,您都可以维护一个请求队列。每个新请求位于队列的后面,每个响应从队列的前面弹出匹配的请求 如果连接失败,队列还会向您提供已发送但尚未收到响应的请求列表。然后,您可以对每个请求采取适当的错误更正操作