RMI和ActiveMQ之间的区别

mhm*_*mpl 2 java architecture activemq-classic rmi multi-tier

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

两个模块 - 客户端和服务器 - 了解接口(通过构建路径包含).

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

似乎我需要向两个方向进行沟通."标准"Java RMI是正确的方法还是我需要使用像ActiveMQ这样的JMS实现?

我看不出这两种方法的主要区别?是唯一一个RMI是同步的,JMS是异步还是存在更多?

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

Ósc*_*pez 8

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

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

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

异步消息传递通常用于解决集成不同系统的体系结构问题,关于该主题的一本非常好的(技术无关的)书籍是企业集成模式:设计,构建和部署消息传递解决方案.

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