tidb前加了loadbalance 后Handshake error错误

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】tidb前加了华为云的load balance
【遇到的问题:问题现象及影响】
添加了华为云的lb,这个指标升高,这是什么原因?

“Handshake error” 错误通常表示客户端和 TiDB 服务器之间的连接存在问题。当您在 TiDB 前面添加负载均衡器时,可能会出现负载均衡器配置不正确的情况,导致连接失败。

以下是 “Handshake error” 错误消息的可能原因和解决方法:

  1. 负载均衡器配置不正确:确保负载均衡器配置正确,将流量转发到正确的 TiDB 实例和端口。您可以参考 TiDB 文档 [1] 了解有关如何配置负载均衡器的更多信息。
  2. 防火墙或网络问题:检查是否有防火墙规则或网络问题可能会阻止客户端和 TiDB 服务器之间的连接。您可以尝试从客户端 ping TiDB 实例,以查看是否存在网络问题。
  3. 客户端配置不正确:确保客户端配置为连接到负载均衡器,而不是直接连接到 TiDB 实例。您可以参考 TiDB 文档 [2] 了解有关如何配置 TiDB 客户端的更多信息。
  4. TiDB 配置不正确:确保 TiDB 实例已配置为接受来自负载均衡器的连接。您可以参考 TiDB 文档 [3] 了解有关如何配置 TiDB 的更多信息。

如果上述解决方法都不起作用,请提供有关您的环境和错误消息的更多信息,包括完整的错误消息和任何相关日志。

请确保负载均衡器的配置正确,并正确地将流量路由到 TiDB 实例

如果确定配置正确的,把健康检查关了试试

  1. ELB节点根据健康检查配置,向后端服务器(IP+健康检查端口)发送TCP SYN报文。
  2. 后端服务器收到请求报文后,如果相应的端口已经被正常监听,则会返回SYN+ACK报文。
  • 如果在超时时间内没有收到后端服务器的SYN+ACK报文,则判定健康检查失败。然后发送RST报文给后端服务器中断TCP连接。
  • 如果在超时时间内收到了SYN+ACK报文,则发送ACK给后端服务器,判定健康检查成功,并发送RST报文给后端服务器中断TCP连接。
    发送RST包重置连接,tidb的这个指标如果是稳定的,是不是就可以忽略了

我阿里云的slb 经常误报,健康检查被我关了

我不敢关,就这样开着吧,知道是这个引起的就可以了,目前没发现影响其它指标

  1. 客户端尝试与服务器未对外提供服务的端口建立TCP连接,服务器将会直接向客户端发送reset报文。
  2. 客户端和服务器的某一方在交互的过程中发生异常(如程序崩溃等),该方系统将向对端发送TCP reset报文,告之对方释放相关的TCP连接。
  3. 接收端收到TCP报文,但是发现该TCP的报文,并不在其已建立的TCP连接列表内,则其直接向对端发送reset报文。
  4. 在交互的双方中的某一方长期未收到来自对方的确认报文,则其在超出一定的重传次数或时间后,会主动向对端发送reset报文释放该TCP连接。
  5. 有些应用开发者在设计应用系统时,会利用reset报文快速释放已经完成数据交互的TCP连接,以提高业务交互的效率。

正是属于第5种这种情况

会话保持的问题吧

还有可能是协议兼容性的问题