# 错误：集群节点超时：节点<node_id>不可达已<seconds>秒

- **ID:** `redis/cluster-node-timeout-exceeded`
- **领域:** redis
- **类别:** network_error
- **错误码:** `ERR`
- **验证级别:** ai_generated
- **修复率:** 85%

## 根因

集群节点在cluster-node-timeout周期内未响应gossip ping，导致集群将其标记为可能故障并触发故障转移尝试。

## 版本兼容性

| 版本 | 状态 | 引入 | 弃用 |
|------|------|------|------|
| 5.0.0 | active | — | — |
| 6.0.0 | active | — | — |
| 7.0.0 | active | — | — |

## 解决方案

1. ```
   检查节点间网络连通性：从每个节点运行 `redis-cli -h <node_ip> -p <port> PING`。如果不可达，验证防火墙规则（例如iptables）并确保集群总线端口（基础端口+10000）已开放。
   ```
2. ```
   如果节点过载，减少客户端流量或扩展资源。临时使用 `CLUSTER SET-NODE-TIMEOUT <毫秒>` 增加容限，然后调查根本原因。
   ```
3. ```
   如果节点永久宕机，在所有其他节点上使用 `CLUSTER FORGET <node_id>` 移除它，然后添加替换节点。
   ```

## 无效尝试

- **** — Simply restarting the unreachable node without checking network connectivity or firewall rules often leads to the same timeout recurring. (85% 失败率)
- **** — Increasing cluster-node-timeout to a very high value delays failure detection and can mask underlying network issues, leading to split-brain scenarios. (80% 失败率)
