是否可以将“ MaxConcurrentStreams”服务器选项视为等同于grpc-python中的“ maximum_concurrent_rpcs”?

时间:2019-05-13 06:46:22

标签: grpc-go

我正在实现一个grpc服务器(运行中),如果我的服务器已经在服务(目前)设置的最大数量的RPC,我需要用某种服务器繁忙/不可用消息进行响应。

我之前已经用grpc-python实现了grpc服务器,在此我通过结合maximum_concurrent_rpcsthreadpool中的最大线程数来实现这一点。我正在grpc-go中寻找类似的东西。我能找到的最接近的服务器设置可以通过调用MaxConcurrentStreams返回的ServerOptions来设置。我的应用程序仅支持unary RPCs,但不确定此设置是否适用。

我只是想强制执行/设置服务器可以处理的最大活动并发请求数。设置maxConcurrentStreams会起作用还是我应该在代码本身中考虑做到这一点(我已经完成了一些基本的实现,但是我宁愿使用grpc-go提供的功能)?

1 个答案:

答案 0 :(得分:0)

我以前从未使用过MaxConcurrentStreams,因为对于高负载服务,您通常希望从硬件中获得最大收益,而且这种限制似乎没有道理。使用此设置也许可以实现您的目标,但是您需要研究一下,实现MaxConcurrentStreams时会返回哪种错误。我认为这应该是GRPC的传输错误,而不是您自己的错误,因此您将无法控制错误消息和代码。