【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】
一个应用程序连接tidbserver,过一段时间1到2个月左右会出现连接异常。应用程序异常如下
tidb的异常如下
每次出现这个问题,重启应用程序还是连接不上,需要重启tidbserver才可以解决,我到其他服务器上去连接又是没问题的。
有什么办法解决这个问题吗?
有猫万事足
2
大概率是负载均衡LB的问题。
LB用的是haproxy? ubuntu20 apt直接装的?这个方式安装的haproxy是明确的有bug。会卡死连接。
1 个赞
java的链接池配置中,没有链接空闲超市的配置么?
Kongdom
(Kongdom)
4
哈?还有这么个bug啊,keepalived+haproxy能解决么?
有猫万事足
9
不能,这样装的haproxy的版本就是带bug的。当初坑了很久才发现是haproxy的问题。
现象是haproxy会拿着死连接不释放。必须换haproxy的版本,手动编译了一个才解决。现象和他这个描述类似。
不过本贴这个问题后面说了换了tiproxy也不能解决。这个就不知道是什么原因了。
2 个赞
config.setIdleTimeout(600000); // 设置空闲连接超时时间为10分钟,单位毫秒
config.setMaxLifetime(1800000); // 设置最大生命周期,超过这个时间的连接将被终止,单位毫秒
我建议业务配置上,阈值业务自己定,如果某个链接变得不活跃了自动释放掉重新建链接,不要无限制的连着,因为网络抖动,实例重启都会导致这个链接被动断开
我是flinkcdc,需要一直常连接,我代码里面也有重连,就是重连也连不上,重启应用也连不上,只能重启tidb server
下次遇到这类问题后,建议在用mysql客户端链接下tidbserver看看可以连接上么
xfworld
(魔幻之翼)
13
keepalived,这么重要的参数都不要么?
没有这个参数,超时后连接可能还在,在引用的时候,就会出现这个错误了,因为没探测是否存活,是否可用。
这个问题找你公司的架构师帮你看看…
dba-kit
(张天师)
14
只看日志信息,两端都是正常的:
- 在 JAVA 程序那里,重启也会直接报错,并不是执行了一段时间报错的。
- 在 TiDB 这里,是接收到了异常的报文,直接关闭连接了。
描述一下网络链路吧,程序和 TiDB 之间有哪些中间件,大概率还是某个中间件的问题。
1 个赞
dba-kit
(张天师)
15
看这个描述,更像是负载均衡导致的,很多负载均衡都是可以复用端口的,你在一台机器上重试没用
1 个赞