gPRC截止日期(java)的默认值是多少



我注意到一个阻塞的gPRC调用可能会被阻塞很长很长一段时间,如果不是永远的话。

我查看了以下页面:https://grpc.io/docs/guides/concepts.html#deadlines

但是,页面并没有告诉Java的默认截止日期/超时值。所以,我想知道是否有一个默认的java值。

如果没有的话,我可能必须为所有的电话设置一个截止日期值。这很不方便。。。

gRPC中没有任何语言的默认截止日期。如果出现网络故障,并且客户端启用了keepalive,则调用最终会失败。但是,如果服务器花费了无限长的时间,那么客户端可能会等待无限长的时段。

根据这个问题,它相当于"无穷大"https://github.com/grpc/grpc-java/issues/1495

正如@Eric Anderson所说,没有默认的截止日期。但是,强烈建议为客户端中的每个RPC设置一个RPC,服务提供商还应指定他们支持的最长截止日期,如博客中所述:https://grpc.io/blog/deadlines

通常,如果不设置截止日期,则会为所有运行中的请求保留资源,并且所有请求都可能达到最大超时。这将使服务面临耗尽资源(如内存(的风险,这将增加服务的延迟,或者在最坏的情况下可能导致整个进程崩溃。

为了避免这种情况,服务应该指定他们在技术上支持的最长默认截止日期,客户端应该等到响应对他们不再有用。对于服务来说,这可以像在.proto文件中提供注释一样简单。对于客户来说,这涉及到设置有用的截止日期。

最新更新