--- title: "Transport TCP Keep-Alive 探测间隔配置" date: 2026-03-25 lastmod: 2026-03-25 description: "transport.tcp.keep_interval 配置项用于控制 TCP keep-alive 探测之间的间隔时间。" tags: ["Transport", "TCP", "Keep-Alive", "连接保活"] summary: "配置项作用 # transport.tcp.keep_interval 配置项用于控制TCP keep-alive 探测之间的间隔时间(秒)。 配置项属性 # 配置路径: transport.tcp.keep_interval 数据类型: Integer(整数,秒) 默认值: -1(使用操作系统默认值) 是否可选: 是 作用域: NodeScope(节点级别) 动态更新: 否(需要重启节点生效) 配置建议 # 默认配置 # transport: tcp: keep_interval: -1 # 使用操作系统默认值 快速检测场景 # transport: tcp: keep_alive: true keep_idle: 60 # 60秒空闲后开始探测 keep_interval: 10 # 每10秒发送一次探测 keep_count: 9 # 9次探测失败后声明连接死亡(总共150秒超时) 标准配置 # transport: tcp: keep_alive: true keep_idle: 60 # 60秒空闲后开始探测 keep_interval: 5 # 每5秒发送一次探测 keep_count: 3 # 3次探测失败后声明连接死亡(总共75秒超时) 注意事项 # 非动态更新: 需要重启节点生效。" --- ## 配置项作用 `transport.tcp.keep_interval` 配置项用于控制**TCP keep-alive 探测之间的间隔时间(秒)**。 ## 配置项属性 - **配置路径**: `transport.tcp.keep_interval` - **数据类型**: `Integer`(整数,秒) - **默认值**: `-1`(使用操作系统默认值) - **是否可选**: 是 - **作用域**: NodeScope(节点级别) - **动态更新**: 否(需要重启节点生效) ## 配置建议 ## 默认配置 ```yaml transport: tcp: keep_interval: -1 # 使用操作系统默认值 ``` ## 快速检测场景 ```yaml transport: tcp: keep_alive: true keep_idle: 60 # 60秒空闲后开始探测 keep_interval: 10 # 每10秒发送一次探测 keep_count: 9 # 9次探测失败后声明连接死亡(总共150秒超时) ``` ## 标准配置 ```yaml transport: tcp: keep_alive: true keep_idle: 60 # 60秒空闲后开始探测 keep_interval: 5 # 每5秒发送一次探测 keep_count: 3 # 3次探测失败后声明连接死亡(总共75秒超时) ``` ## 注意事项 1. **非动态更新**: 需要重启节点生效。 2. **操作系统默认值**: 设置为 -1 时使用操作系统默认值,不同平台默认值不同。 3. **超时计算**: 配合 `keep_idle` 和 `keep_count` 共同决定连接被声明死亡的总时间: - 例如:`keep_idle=60, keep_interval=10, keep_count=9` - 表示:60秒空闲后,每10秒发送一次探测,9次失败后(90秒)声明连接死亡 - 总超时时间 = 60 + 10 × 9 = 150秒 4. **Linux 系统对应**: 此设置配置 Linux 系统的 `TCP_KEEPINTVL` socket 选项。 5. **配置关系**: 需要配合 `transport.tcp.keep_idle` 和 `transport.tcp.keep_count` 使用,共同控制 TCP keep-alive 行为。 6. **使用场景**: 特别适用于有防火墙或负载均衡器的环境,确保空闲连接不会因超时被丢弃。