是否可以复制完整的JVM,并且在故障转移的情况下只需将负载翻转到复制的JVM?
如果是,那我们该怎么做?
答案 0 :(得分:2)
如果您的应用程序是Web应用程序,请阅读“群集”和“负载平衡”。大多数应用服务器都支持群集。
您还可以查看提供JVM间通信的JGroups。
答案 1 :(得分:1)
这不是在JVM级别完成的,但是有很多产品可以处理消息。通常,这是企业服务总线的一项功能。谷歌,你会得到一些想法。
答案 2 :(得分:1)
理论上是的,但主要的问题是你的应用程序会慢很多(比如100到1000x),这就是让大多数人无法完全复制的原因。
相反,您需要生成重要信息的数据流,例如所有输入或输出消息(或两者)并将其发送到第二台机器并从现有数据重新构建状态。
BTW:当您丢失与服务器的TCP连接时,必须关闭并重新连接。这些都不是透明的故障。 UDP通过没有连接来避免这个问题,但是更难以可靠地工作。解决此问题的一种方法是在客户端和服务器之间安装一个简单的代理/负载平衡服务器。因为它很简单,不太可能失败,并且它隐藏了与服务器的重新连接。但是,如果您遇到数据中心故障,它也会消失。