请阐明 gRPC 取消语义
Please clarify gRPC cancel semantics
我是否正确地假设以下从客户端取消调用(一元或流式)的语义将导致:
客户端只会在传输层取消请求
客户端不会等待服务器的任何ACK来确认取消(非阻塞取消)
因此,服务器可能仍在继续执行请求
如果是这样,是否有任何阻止版本的取消?
是的,这都是真的。
没有任何版本的取消会阻塞,直到它从服务端应用程序收到它不再处理 RPC 的确认。 (没有因任何原因而阻塞的取消版本。)
我是否正确地假设以下从客户端取消调用(一元或流式)的语义将导致:
客户端只会在传输层取消请求
客户端不会等待服务器的任何ACK来确认取消(非阻塞取消)
因此,服务器可能仍在继续执行请求
如果是这样,是否有任何阻止版本的取消?
是的,这都是真的。
没有任何版本的取消会阻塞,直到它从服务端应用程序收到它不再处理 RPC 的确认。 (没有因任何原因而阻塞的取消版本。)