首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gRPC KeepAlive/空闲超时

gRPC KeepAlive/空闲超时
EN

Stack Overflow用户
提问于 2022-01-17 12:44:16
回答 2查看 1.2K关注 0票数 2

我正试图了解gRPC如何保持活动或空闲连接。我有双向流RPC,在这里我创建会话,什么都不做,因此通道上没有任何活动。

  1. 如果没有活动,GRPC_ARG_KEEPALIVE_TIME_MS信号将被阻塞(https://github.com/grpc/grpc/blob/master/doc/keepalive.md#faq),连接将在此间隔之后关闭,但是它不会终止,我看到发送和接收了保持活动的ping。为什么?
  2. 如果我们不设置任何参数,是否有超时之后连接将自动关闭?如果是的话,我该如何改变这种行为呢?
EN

回答 2

Stack Overflow用户

发布于 2022-01-24 12:01:42

这里发生的事情是,也许GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS参数是正确的,这就是为什么即使没有连接也要发送ping。

GRPC_ARG_KEEPALIVE_TIMEOUT_MS控制文档中所写的超时:

此通道参数控制保持活动ping的发送方等待确认的时间(毫秒)。如果它在这段时间内没有收到确认,它将关闭连接。

您可以手动调整此参数以控制超时持续时间。

GRPC_ARG_KEEPALIVE_PERMIT_WITHOUT_CALLS设置为false,以便在没有活动调用时不能发送keepAlive页面。

票数 2
EN

Stack Overflow用户

发布于 2022-01-22 17:01:23

KeepAlive参数是用来确保连接保持打开,并向服务器和客户端指示它仍在连接和响应。

您可以在操作这里中看到这方面的低级别视图。

另一方面,在没有通过连接发送请求之后,Idle Connections参数将关闭连接(这指的是应用程序级别的数据包,而不是保持活动的数据包)。这很好,因为空闲连接占用内存、CPU和打开的套接字,这些都是有限的资源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70741569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档