DAX重启时遇到Endpoint unreachable错误:TLS连接建立前套接字断开
DAX重启TLS连接断开问题排查方案
问题现象
DAX重启过程中返回报错:
Endpoint is unreachable: Client network socket disconnected before secure TLS connection was established
对应的堆栈跟踪信息如下:
Error: Endpoint is unreachable: 10.213.1.120:9111. Client network socket disconnected before secure TLS connection was established at SocketTubePool.socketError (/Users/awagle/WebPlatform/amoeba/node_modules/amazon-dax-client/src/Tube.js:290:11) at TLSSocket.tls.connect.on (/Users/awagle/WebPlatform/amoeba/node_modules/amazon-dax-client/src/Tube.js:277:103) at TLSSocket.emit (events.js:189:13) at TLSSocket.EventEmitter.emit (domain.js:441:20) at emitErrorNT (internal/streams/destroy.js:82:8) at process._tickCallback (internal/process/next_tick.js:63:19)
排查解决步骤
- 验证基础网络连通性:在DAX客户端所在的服务器上执行
telnet 10.213.1.120 9111或nc -zv 10.213.1.120 9111,确认9111端口可达。如果端口不通,排查两端的安全组、网络ACL、本地防火墙规则,确认已放通客户端到DAX节点9111端口的出入站流量。 - 检查DAX集群运行状态:确认重启后的DAX集群所有节点均处于可用状态,不存在启动中、故障的节点,避免客户端请求被路由到未就绪的节点。
- 校验TLS配置匹配性:
- 确认DAX集群是否开启TLS加密,客户端
amazon-dax-client的配置需要和集群要求保持一致,集群开启TLS时客户端必须显式配置启用TLS参数 - 检查客户端使用的TLS版本是否符合DAX集群要求,DAX默认仅支持TLS 1.2及以上版本,低版本TLS握手请求会被直接拦截导致连接断开
- 确认DAX集群是否开启TLS加密,客户端
- 调整客户端超时配置:DAX重启过程中节点响应耗时会升高,客户端默认的TLS握手超时时间过短会导致握手提前中断,可适当调高客户端的
connectTimeout、tlsConnectTimeout参数值,避免超时误判。 - 验证客户端版本兼容性:确认当前使用的
amazon-dax-client版本和DAX集群服务端版本兼容,过老的客户端版本存在已知的TLS握手缺陷,可升级到对应兼容的最新稳定版本后重试。 - 排查资源负载情况:检查DAX节点的CPU、内存、网络带宽占用,以及客户端所在机器的资源负载,高负载场景下会导致TLS握手包无法及时处理被丢弃,触发连接断开错误。
内容的提问来源于stack exchange,提问作者abhs50
相关产品推荐
相关产品推荐

