0

我正在争论是否应该为我正在开发的应用程序使用 java RMI 或标准 Java 网络。

该应用程序将是一个具有心跳传感器和故障保护功能的网络系统。所以它是一个三层系统,至少有一个 DB 和 java 应用程序。

因此,如果我的数据库在一台机器上出现故障,我希望第二台机器能够“感知”这一点。

我对 Java RMI 有点困惑,是否值得学习它。

或者如果我使用标准的 Java 网络,我可以像 RMI 一样做吗?我的意思是,如果我真的很了解 Java 网络的话。

谢谢!

4

2 回答 2

2

如今,使用 SOAP 或 REST 设置 Web 服务非常容易。借助 REST,您可以使用 XML 或 JSON 消息,而无需真正了解它的全部内容。所有这些类型的服务都可以通过 .NET 代码或 PHP 或 Javascript 访问。(嗯......除了 .NET 和 Java 之外,SOAP 有点痛苦。//个人意见)

Spring 可以帮助您设置服务,并且客户端接口非常容易。相当接近 bean 类和业务方法的标准注释定义接口,而 Spring 完成了繁重的工作。(我说的是 Spring Web 服务,而不是 Spring Remoting,尽管这样也可以。Spring Remoting 并不比 RMI 恕我直言。)

您还可以使用 Jersey (JAX-WS) 或 Jackson (Parse JSON) 进行远程处理。bean 类的标准注释和不构建接口的东西。CXF 也会做 JAX-WS 和 JAX-RS。这些是用于构建通过远程消息进行通信的服务和客户端的 Java 标准。

或者,有用于生成远程接口两侧的 eclipse 工具。所有这些都与某个框架相关联(其中一些是 Axis-2 或 CXS)。它有点像代码生成。

您可能想稍微研究一下,看看哪一个与您看待事物的方式产生共鸣。

我知道我更喜欢所有这些而不是使用 RMI。但是我很久没有直接使用RMI了。

于 2013-02-01T00:55:43.700 回答
1

与 Java 中通过 Socket 类的裸 TCP/IP 支持相比,RMI 是更高级别的协议,您似乎将其称为“Java 网络”。如果您的系统唯一要做的事情就是发送心跳并且只有几个节点,那么出于简单的原因,您应该选择 RMI。由于所有参与者都是 JVM,因此不需要任何互操作和额外的库来支持它,并且由于参与者的数量有限,因此无需考虑任何花哨的东西。

于 2013-02-01T02:21:21.417 回答