Java 用RMI检测服务器崩溃
我不熟悉Java和RMI,但我正在尝试以这样一种方式编写我的应用程序,即有许多客户端连接到单个服务器。到目前为止,一切顺利 但是,当我关闭服务器(模拟崩溃或通信问题)时,我的客户端仍然不知道,直到我下一次调用服务器。要求我的客户端在“脱机模式”下继续在没有服务器的情况下工作,并且我越早知道我处于脱机状态,用户体验就越好 是否有一个活动连接保持打开状态,客户机可以检测到问题或类似的情况,或者我只需等到下一个调用失败?我想我可以对服务器进行“健康检查”,但这似乎不是最好的方法Java 用RMI检测服务器崩溃,java,rmi,Java,Rmi,我不熟悉Java和RMI,但我正在尝试以这样一种方式编写我的应用程序,即有许多客户端连接到单个服务器。到目前为止,一切顺利 但是,当我关闭服务器(模拟崩溃或通信问题)时,我的客户端仍然不知道,直到我下一次调用服务器。要求我的客户端在“脱机模式”下继续在没有服务器的情况下工作,并且我越早知道我处于脱机状态,用户体验就越好 是否有一个活动连接保持打开状态,客户机可以检测到问题或类似的情况,或者我只需等到下一个调用失败?我想我可以对服务器进行“健康检查”,但这似乎不是最好的方法 谢谢你的帮助事实上,我
谢谢你的帮助事实上,我只是想了解更多关于RMI和CORBA的知识,但我并没有你那么远。我所知道的是,这些系统也是为了降低成本而构建的,就我所知,主动连接是一件昂贵的事情
我建议您使用一个多播地址,您的服务器以某种方式向其发送“我仍在这里”,但如果不使用TCP连接,UDP应该足以实现这一目的,而且效率更高。我在编写RMI应用程序(uni分配)时对此进行了研究但我没有遇到任何用于测试远程系统是否处于活动状态的内置功能。对此,我只使用UDP心跳机制。(未测试)。在服务器中重复执行一个单独的RMI调用,该调用只执行“等待X秒”,然后返回,应该被告知在服务器关闭时执行失败