【发布时间】:2021-12-07 10:17:38
【问题描述】:
我正在使用 Netty 4.1.65.Final。我们有一个代理服务,它接收来自客户端的请求,并将该请求转发到下游服务器。因此,我们有两个通道/管道,一个用于上游客户端,一个用于下游服务器。
上游客户端代理下游服务器
有一种情况,当我们仍在下游通道上处理下游响应时,上游客户端断开连接。 Netty 关闭上游通道,并作为其清理过程的一部分删除管道中的所有处理程序。当我们将下游响应写入上游通道(并返回给上游客户端)时,出站处理程序不会执行,因为它们已被删除。这些处理程序包含需要执行的核心逻辑。
是在写入上游通道之前重新添加出站处理程序并随后在侦听器中清理处理程序的唯一解决方案吗?
也许可以将核心逻辑移动到监听器,但这并不理想,因为我们需要访问 HttpResponse 对象。出站处理程序非常适合这种情况。
【问题讨论】:
标签: netty