2

我目前正在尝试熟悉多层应用程序(服务器/客户端架构)。为此,我创建了服务接口和相关的服务实现。

两个模块——客户端和服务器——都知道接口(通过构建路径包含)。

该应用程序的目的是客户端可以从服务器接收数据,并将数据发送到服务器,然后将数据存储到数据库中。

看来我需要双向沟通。“标准”Java RMI 是正确的方法,还是我需要使用像 ActiveMQ 这样的 JMS 实现?

我看不出这两种方法的主要区别?RMI 是同步的,JMS 是异步的,还是只有这样一个?

此外,你能推荐一个 ActiveMQ 教程甚至书籍吗?

4

1 回答 1

8

我们在这里讨论两种不同的技术,每种技术都有不同的使用场景。RMI 是一种 Java 应用程序编程接口 (API),它支持在 Java 程序之间远程调用方法,其预期用途是构建同步的分布式应用程序。RMI 是远程过程调用 (RPC) 的 Java 等价物。

另一方面,ActiveMQ 是一种产品,一种面向消息的中间件 (MOM),可用于接收和处理异步消息(队列或主题),Java 应用程序通常会使用 JMS API 与此类系统进行通信。

当您需要以分布式同步方式与另一个 Java 应用程序通信时,您将使用 RMI,而您将使用 JMS 发送要异步处理的消息,并且原则上处理可能涉及使用任何其他技术编写的系统,而不仅仅是 Java (与 RMI 不同)。

异步消息传递通常用于解决集成不同系统的架构问题,关于该主题的一本非常好的(与技术无关的)书是Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

最后,ActiveMQ in Action是一本关于 ActiveMQ 的好书。

于 2011-11-13T03:06:09.207 回答