Grpc:只有一个服务器线程处理所有请求
Grpc: only one server thread processes all requests
我有一个用 C# 编写的 grpc 服务,它有 2 个调用,如启动和停止。当client调用Start(这个调用需要很多时间)然后Stop server同步处理请求,而grpc已经启动了4个线程。
2016-12-01 18:55:14,199,INFO,grpc 2 (cq 2),0 parsing.c:659: HTTP:17:HDR:SVR: :path: /Service/Start
2016-12-01 18:55:14,303 [grpc 2 (cq 2)] DEBUG [RPC:27] Start
2016-12-01 18:55:14,822,INFO,grpc 0 (cq 0),0 parsing.c:659: HTTP:19:HDR:SVR: :path: /Service/Stop
2016-12-01 18:55:33,661 [grpc 2 (cq 2)] DEBUG [RPC:27] Stop
能否请您帮助我了解它是否按设计运行,或者我是否遗漏了任何其他设置?
它按设计运行,您必须在同步调用中使用 async/await 以避免阻塞完成队列的线程。
我有一个用 C# 编写的 grpc 服务,它有 2 个调用,如启动和停止。当client调用Start(这个调用需要很多时间)然后Stop server同步处理请求,而grpc已经启动了4个线程。
2016-12-01 18:55:14,199,INFO,grpc 2 (cq 2),0 parsing.c:659: HTTP:17:HDR:SVR: :path: /Service/Start
2016-12-01 18:55:14,303 [grpc 2 (cq 2)] DEBUG [RPC:27] Start
2016-12-01 18:55:14,822,INFO,grpc 0 (cq 0),0 parsing.c:659: HTTP:19:HDR:SVR: :path: /Service/Stop
2016-12-01 18:55:33,661 [grpc 2 (cq 2)] DEBUG [RPC:27] Stop
能否请您帮助我了解它是否按设计运行,或者我是否遗漏了任何其他设置?
它按设计运行,您必须在同步调用中使用 async/await 以避免阻塞完成队列的线程。