长连接黑洞重现和分析

长连接黑洞重现和分析

💡 原文中文,约15300字,阅读约需37分钟。
📝

内容提要

本文讨论了长连接黑洞问题,即数据库crash重启后业务长时间不能恢复的问题,并提出了解决方法。建议业务方设置合适的SocketTimeout参数,数据库团队在高可用切换时断开所有老连接,同时在操作系统层面设置合适的参数。还提到了TCP_USER_TIMEOUT参数和连接池的配置建议。总结了解决该问题的最佳实践。

🎯

关键要点

  • 长连接黑洞问题导致数据库崩溃重启后业务长时间无法恢复。
  • 建议设置合适的SocketTimeout参数以控制请求超时时间。
  • 数据库团队在高可用切换时应断开所有老连接。
  • 操作系统层面应设置合适的tcp_retries2参数以减少恢复时间。
  • TCP_USER_TIMEOUT参数可以帮助更精确地控制连接超时。
  • 连接池配置应参考最佳实践,避免使用有bug的连接池设置SocketTimeout。
  • LVS在处理长连接时应支持设置重置时间以快速恢复连接。
  • 业务方应重视超时设置,避免长时间挂起的请求影响业务恢复。
  • 总结最佳实践,确保超时时间可控和可预期,减少故障恢复时间。
➡️

继续阅读