Websocket Not Connected Exception for connection closed

【TDengine 使用环境】
测试
【TDengine 版本】
3.4.1.0
【操作系统以及版本】
乌班图
【部署方式】容器/非容器部署
非容器部署
【集群节点数】
3
【集群副本数】
1
【描述业务影响】

td稳定运行了一周,突然出现下面异常,这时查询服务不可用,但正常写数是可以的,我们给的压力在300TPS左右,

下面是对tdengine负载均衡nginx配置

1、请先确认一下 taosadapter 服务和 taosd 服务是否正常。

2、再确认一下 应用程序 通过 nginx 到 taosadapter 服务的网络是否正常。

经过测试,问题进一步明确了

我们使用druid连接池,如下图

10.6.77.107:7041 为nginx服务,代理后端3个节点的tdengine

当nginx停止时,前端应用会出错,nginx启动后并没有自动恢复,也就是说nginx重启或网络短时中断都会造成无法自动恢复的故障

不能自动恢复的根本原因是:Nginx 中断导致 Druid 中 TCP 连接“静默失效”,而 Druid 默认不会及时检测或强制重建这些连接;Nginx 重启后旧连接无法复活,必须靠 Druid 的 evict + validation 机制主动剔除并新建连接。

我试了test-on-borrow=true,没有效果,就算有效这个也会严重影响性能

希望有其他办法

url地址加enableAutoReconnect参数

1 个赞

请教一下,我是单副本,3节点,需要前置nginx吗?还是直接用jdbc:TAOS-WS填3个地址就行?这种方式能负载均衡吗

有nginx 更好。么有的话,使用jdbc也可以填写3个地址,也能达到负载均衡。