为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.7
- 【问题描述】:
使用jdbc,将实时数据写入TiDB。每来一条数据写入一次,导致TiDB和Tikv挂掉。
请问产生这个问题的原因是什么?为什么会写宕机?以及如何避免这种情况?使用jdbc攒一批写入可以解决这个问题嘛?
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
使用jdbc,将实时数据写入TiDB。每来一条数据写入一次,导致TiDB和Tikv挂掉。
之前用这种方式,写入mysql,也会导致这个问题。mysql是越写越慢,时间长了之后,mysql就宕机了。
建议参考常见问题导图等文档,根据日志和监控排查,是否存在 panic 或 oom 等问题
https://docs.pingcap.com/zh/tidb/stable/tidb-troubleshooting-map
https://docs.pingcap.com/zh/tidb/stable/troubleshoot-tidb-cluster
如果不确定具体原因,可以导出相关监控和日志,上传附件
监控页面导出参考 FAQ
好的,我再看看,我现在改成批处理写入tidb了,tidb宕机的次数明显减少了。
但是我发现,有时候通过display展示集群状态,显示pd和tikvdisconnect了,但是过了一小会,又正常了。这种情况下,我通过flink实时写入tidb,就会导致flink连接不上tidb,导致flink报错退出。
我现在打算在flink里面设置下,flink如果连接失败自动重启flink。请问还有什么好的解决办法吗
看截图报错是 PD Server Timeout,可能是 TiDB 或 TiKV 挂掉重启后短暂连接 pd 报错,flink 过一段时间重试应该可行,不过主要原因还是宕机导致的服务不可用。
截图上集群拓扑是 TiDB/TiKV/PD 部署在同一个节点上,会存在服务资源的争用和互相影响,建议按照官网将这几类服务分开部署。