gRPC在同一客户端通道上同步

时间:2019-04-04 21:59:47

标签: c++ multithreading asynchronous grpc

我正在C ++上实现异步gRPC服务器。总体上,该实现基于此处提供的示例:https://grpc.io/docs/tutorials/async/helloasync-cpp.html,但需要注意的是,我正在N个线程上运行N个完成队列。

我遇到的问题是,当我创建一个同步客户端并同时在多个线程上调用RPC时,服务器会在一个线程上同步接收它们。

因此,即使客户端同时在10个线程中调用10个请求,服务器也一次只能处理一个RPC。这意味着如果RPC完成需要一秒钟,那么所有10个并发RPC也将在10秒内完成(即使服务器将在不同线程上处理每个rpc)。

在gRPC下这种行为是预期的还是我做错了什么?我(为了获取并发rpcs)是否也需要创建一个异步客户端?

0 个答案:

没有答案