java - 服务器断开连接时如何在传输过程中将客户端切换到第二个服务器

标签 java sockets rmi

我正在创建客户端/服务器聊天,并尝试创建冗余服务器。

当主服务器出现故障时,客户端会切换到第二服务器。

在客户端,我有一个连接方法,可以在其中启动套接字、输入流和输出流。我想使用 RMI 重复进行远程对象调用,每次无法访问该对象时都会抛出异常。

我正在努力如何实现这个技巧并使其发挥作用。问题不仅是当客户端首先连接以检查远程对象时,而且当套接字已连接并且有数据通过流之间传输时,也应该检查对象。

如果您有任何线索,请不要犹豫。谢谢。

最佳答案

如果远程方法调用的目标已关闭,您将收到某种 RemoteException:

  • 如果还没有可供重用的池连接,则抛出 ConnectException,或者

  • MarshallException 或 UnmarshallException,具体取决于检测到中断的阶段。

此时,您需要查找其他注册表并使用由此获得的其他 stub 重试。

这一切都不需要套接字。

关于java - 服务器断开连接时如何在传输过程中将客户端切换到第二个服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23231257/

相关文章:

java - 当克隆对象的值更改时,原始对象也会更改

java - 从字符串java中替换停用词,如何处理第一个字符

java - 如何在 Android 应用程序中存储数据

java - 单元测试类样式

c - gethostbyname() 未知错误

python - Python中的进程间通信

用于客户端/服务器通信的 Java 标准

c++ - 如何跨语言在多个应用程序之间建立通信

java - 关于Linux系统中运行的Spring RMI

java - 是否可以在两个类之间双向使用 RMI?