【问题标题】:Unplugging mysql remote拔掉mysql遥控器
【发布时间】:2021-04-01 01:25:17
【问题描述】:

我的 mysql 服务器在远程计算机上。当数据库连接被切断时,我正在测试一段代码的行为,因为代码通过 DriverManager 观察数据库连接。当我从 Windows 的服务中停止 mysql 时,代码在调整到脱机状态时没有问题。但是当我从远程拔下网络电缆时,数据库查询至少需要一分钟才能注意到任何事情,并且程序等待查询的时间相当长,特别是如果它在显示从属状态查询之前被拔掉。为什么会这样?

【问题讨论】:

  • 它被称为(非)优雅关机......你必须实现一个断路器或只是简单的“容错”......

标签: java mysql networking timeout


【解决方案1】:

您看到网络超时。这是 TCP/IP 的一个长期存在的特性。

您的 Java 程序使用 TCP/IP 连接连接到 MySQL。这些设计旨在应对世界各地的网络中断。如果冰岛某处的一台路由器(比方说,由有线和无线公司运营)离线,你的 TCP 连接的数据包会尝试寻找不同的路由。

当您突然断开链路层连接(以太网)电缆时,Java 程序可以判断它已断开的唯一方法是 TCP 连接放弃并超时。

如果您需要比操作系统处理它更快地检测到这种情况,您需要设置某种看门狗线程。

很高兴您通过断开电缆来测试您的东西。但是,这不是服务器软件中非常常见的故障模式。 (在移动设备和服务器之间的连接中很常见。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 2010-12-07
    • 2012-08-01
    • 1970-01-01
    • 2011-01-17
    相关资源
    最近更新 更多