针对这种场景,TiProxy 的负载均衡策略主要有两点改进:
- 负载均衡是动态的,能把连接从一台 TiDB 迁移到另一台,而不只是在路由时做负载均衡,这对长连接的应用更有效。例如你使用了连接池,而每个连接的负载是不固定的,所以 TiDB 的负载也是起伏的。又例如,你新扩了一台 TiDB 出来,长连接也会迁到新 TiDB 上。
- 负载均衡是基于资源使用率的,而不仅仅是 round-robin、随机这些简单的策略,因为简单策略假设每个连接的负载是相同的,但数据库应用更随机多变。
根据以上你的截图,我简单猜测下:要么 237 是新扩出来的节点;要么是断开连接时,刚好 237 上断开的连接更多。
你可以基于自己的工作负载做一些测试和对比。