Java 数据库连接丢失的容错实现
假设数据库关闭,应用程序无法执行包含关键数据的查询。当DB启动并再次建立连接时,您必须执行这些查询Java 数据库连接丢失的容错实现,java,mysql,Java,Mysql,假设数据库关闭,应用程序无法执行包含关键数据的查询。当DB启动并再次建立连接时,您必须执行这些查询 这是在aa集合中收集数千条preparedStatements并在DB连接恢复时执行它们的唯一方法吗?如果这些查询执行会对数据库造成负载并对应用程序性能产生负面影响,该怎么办?您可以使用一些消息队列(甚至临时文件)来持久化所有打开的查询。当数据库重新联机时,您可以根据您的环境以自己确定的速率执行查询。这本身不是容错的,它只是一种缓存机制,不会永远持续下去,在某个时候消息队列将满,您的应用程序将不得
这是在aa集合中收集数千条preparedStatements并在DB连接恢复时执行它们的唯一方法吗?如果这些查询执行会对数据库造成负载并对应用程序性能产生负面影响,该怎么办?您可以使用一些消息队列(甚至临时文件)来持久化所有打开的查询。当数据库重新联机时,您可以根据您的环境以自己确定的速率执行查询。这本身不是容错的,它只是一种缓存机制,不会永远持续下去,在某个时候消息队列将满,您的应用程序将不得不停止处理传入的查询。我同意您@DirkTrilsbeek的观点。您有什么建议使其具有容错性吗?您可以使用数据库群集或虚拟化功能。“容错”是一个宽泛的术语,您必须考虑要涵盖哪些场景。通过让一个数据库集群分散几个硬件系统,可以减轻硬件故障。如果您的数据库已经处于虚拟化环境中,那么您可能可以使用VMware容错等虚拟化功能来帮助您增加数据库的正常运行时间。甚至与前面提到的队列相结合,也可以为您提供非常好的服务可用性。谢谢@DirkTrilsbeek