Java RMI和JMS有什么区别?

乔纳斯:

在Java中设计分布式应用程序时,似乎有一些技术可以解决相同的问题。我已经简要阅读了有关Java远程方法调用Java消息服务的内容,但是很难真正看到它们之间的区别。Java RMI似乎比JMS更紧密地耦合,因为JMS使用异步通信,但是否则我看不出任何大的差异。

  • 它们之间有什么区别?
  • 其中一个比另一个新吗?
  • 在企业中哪个更普遍/受欢迎?
  • 他们彼此之间有什么优势?
  • 什么时候比另一种更好?
  • 它们在实施难度上有很大不同吗?

我还认为Web服务CORBA解决了相同的问题。

Codenheim:

您无法真正比​​较两者,即苹果和橙子。

RMI是远程过程调用(RPC)的一种形式。它是一种轻量级的,特定于Java的API,希望在通信时可以使用调用方和接收方。

JMS是可靠的消息传递API。存在用于各种消息传递系统的JMS提供程序。即使提供方实现了其中一方不可用的情况,也可以传递消息。我熟悉的两个是TIBCO和IBM MQ。

RMS不处理保证的交付或异步响应,JMS可能取决于提供者。

JMS允许在可用性方面进行松散耦合。“ Web服务”允许在协议和数据的意义上进行松散耦合,但是在可靠消息传递方面并没有指定太多,尽管某些实现确实包含此功能(Windows Communication Foundation),而有些则没有。

编辑:根据评论修改。当我在2010年撰写此答案时,我的经验实际上是只有一个JMS提供程序,而我实际上并不知道没有默认的JMS提供程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章