在为gRPC客户端提供服务时,我的服务器会在客户端断开连接时分配我想要释放它们的资源。
我的问题是:当客户突然断开连接时如何正确处理这种情况?
答案 0 :(得分:0)
这通常不是问题,因为Server API基于RPC而不是传输。例如,您无法分配特定于连接的资源,因为该连接不会向您公开。
最好不要在连接上建立资源决策,因为它会在代理涉及时崩溃。例如,如果您的gRPC服务器前面有一个TLS终止代理,则所有连接似乎都来自同一个“客户端”,即使实际上它们没有。
注意:有一些方法可以近似连接(通过查看客户端的套接字地址),但无法知道连接何时消失。该地址纯粹是信息性的。
答案 1 :(得分:0)
构建服务器时,添加一个具有方法的ServerTransportFilter: transportTerminated(Attributes transportAttrs)。