生产环境数据库里连接已失效,在从连接池中获取前检查时会出现长时间等待,大概15分钟。现在只能增加keepalive做保活,但是一旦有新的连接释放后再被获取,如果连接已失效还是有15分钟等待出现。
原提问者GitHub用户Fladore
以下是可能导致该问题的一些原因和解决办法:
未正确设置连接池配置。
检查连接池配置是否正确设置,例如连接池最大连接数、最小连接数、连接超时时间、空闲连接回收时间等。确保连接池设置的参数符合实际需求,避免连接池过度占用资源或连接池连接不足导致阻塞。
数据库连接异常。
检查数据库是否正常运行,例如数据库是否宕机、网络是否稳定、数据库连接是否被占用等。如果数据库连接异常,可以尝试重启数据库或检查数据库连接状态。
连接超时设置过短。
如果连接超时设置过短,可能导致连接池中的连接频繁失效,从而增加连接池的压力和等待时间。建议根据实际需求适当调整连接超时时间。
连接池请求过多。
如果连接池中的连接请求过多,可能导致连接池资源不足,从而增加连接等待时间。建议检查连接池使用情况,调整连接池设置或优化应用程序的连接使用方式。
数据库连接操作耗时过长。
如果数据库连接操作耗时过长,可能导致连接池中的连接长时间等待,从而增加连接等待时间。建议检查数据库连接操作是否存在性能问题,优化 SQL 查询、索引使用等方面。
这个问题可能是由于连接池中的连接数量太少或者连接的最大寿命太短导致的。为了解决这个问题,可以尝试增加连接池中的连接数量或者延长连接的最大寿命。另外,还可以考虑在连接池中添加一些优化策略,比如根据连接的使用情况动态调整连接池中的连接数量。此外,也可以考虑使用其他连接池管理工具来提高连接池的性能和稳定性。
检查原因是防火墙会主动切断超过一小时不活跃的数据库连接,已经安排数据库端每10分钟发送小包保活
原回答者GitHub用户Fladore
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。