0

我有一个可能会不时阻塞的 grpc 客户端应用程序,这会导致它在一段时间内无法调用 grpc Recv 函数。在这种情况下,grpc 服务器上的行为是什么?grpc 服务器的发送调用是否阻塞?在客户端调用 Recv 之前它会阻塞吗?

4

2 回答 2

0

客户端和服务器可以按任何顺序读取和写入消息,并且完全是特定于应用程序的。因此,回答您的问题时,客户端会阻塞一段时间,可能在超时后消息会掉到地板上。

客户端和服务器端流处理是特定于应用程序的。由于这两个流是独立的,客户端和服务器可以以任意顺序读写消息。例如,服务器可以等到它收到客户端的所有消息后再写入它的消息,或者服务器和客户端可以玩“乒乓”——服务器收到请求,然后发回响应,然后客户端发送基于响应的另一个请求,依此类推。

请参阅 gRPC 官方文档中的解释。还要考虑到有特定于语言的详细信息,因此请务必查看您选择的语言的参考文档。

https://grpc.io/docs/guides/concepts/#rpc-life-cycle https://grpc.io/docs/guides/concepts/#synchronous-vs-asynchronous

于 2020-05-01T06:41:22.627 回答
0

最终,如果阅读器没有以发送发送的速度阅读,流量控制将启动,发送者将被阻止(直到阅读器阅读更多内容)。

于 2020-05-06T17:17:11.917 回答