xia*_*lin 9 keep-alive grpc grpc-java
查看 gRPC Java doc - ManagedChannelBuilder,有两个选项可以管理连接。似乎 idleTimeout() 是默认/首选配置。但是当我尝试搜索比较时,大多数帖子都在谈论 keepAlive 选项。
我很好奇什么是常见做法以及这两种选择的优缺点是什么?
在进入空闲模式之前设置没有正在进行的 RPC 的持续时间。在空闲模式下,通道关闭所有连接、NameResolver 和 LoadBalancer。新的 RPC 将使通道退出空闲模式。通道以空闲模式启动。默认为 30 分钟。
这是一个建议选项。不要依赖与此选项相关的任何特定行为。
设置当连接上没有未完成的 RPC 时是否执行 keepalive。默认为假。
在启用此选项之前,客户端必须获得服务所有者的许可。未使用连接上的 Keepalive 很容易意外地消耗大量带宽和 CPU。通常应使用 idleTimeout() 代替此选项。
Eri*_*son 11
在 RPC 正在进行时,使用 keepalive 来通知连接失败。使用 idleTimeout 释放资源,防止空闲 TCP 连接在通道未使用时中断。
idleTimeout 比 keepAliveWithoutCalls 更受欢迎,因为它倾向于减少系统中的整体负载。当您愿意花费客户端、服务器和网络资源来降低非常不频繁的 RPC 的延迟时,可以使用 keepAliveWithoutCalls。
| 归档时间: |
|
| 查看次数: |
10162 次 |
| 最近记录: |