【问题标题】:What is the difference between rpc, rmi, jms and webservices?rpc、rmi、jms和webservices有什么区别?
【发布时间】:2019-08-25 20:15:43
【问题描述】:

谁能解释一下 rpc、rmi、jms 和 webservices 之间的区别。我所知道的 Web 服务是肥皂和休息。我不明白 jms 是如何在使用 web 服务时出现的,以及 esb 的用途是什么?

【问题讨论】:

    标签: jms


    【解决方案1】:

    RPCRMI 是在删除服务器应用程序上调用方法的紧密耦合方式。 RCP是C/C++版本,RMI是Java版本,见What is the difference between Java RMI and RPC? 了解更多信息。 但是您可以放心地忘记 RPC 和 RMI,因为它们具有这种紧密耦合,并且它们现在被认为是“不现代的”。例如,要从服务器获取“Pete”的地址,客户端会调用类似:address = server.getAddress("Pete") 这里的问题是,当您对服务器的 API 进行一点更改时,您还需要升级所有客户端。如果您在一台服务器上拥有多个客户端,则会导致“升级地狱”。

    JMS 更好,因为您通过消息而不是方法调用进行通信。您将信息包(=消息)从一个组件发送到另一个组件。通知对方事件。例如,client1 可以发送一条消息:msg.setJMSReplyTo("client1"); producer.send( "ADDRESS-SERVER", msg ); response = consumer.receive()(伪代码)并获取该消息。服务器可以添加新的响应字段(街道/邮政编码),例如对于client2,到该地址而不中断与client1的通信。

    JMS 可以是请求/回复,但也可以是发布-订阅(企业集成的最佳方法)。 JMS 提供者很多,其中一些像 ActiveMQ 一样免费,并且在每秒消息数方面通常非常有效。

    WebServices 是基于 HTTP 的。 RESTSOAP。 SOAP 有点过时了。 REST 利用特殊的 URL 向/从网络服务器获取或发布信息。如果高性能很重要(每秒 100k 请求或更多),您应该考虑 JMS,但如果您有使用 WebServer 等的经验,那么 REST 也可能有利于集成。 WebServices 的一个优点是您可以使用标准浏览器来调试此服务,而且通常防火墙更容易在端口 8080 上打开。

    我的建议,如果您没有偏好:了解 JMS 主题 并开始思考如何使用“事件驱动/推送计算”解决问题 - 特别是在后端,这是一个良好的架构。对于更多与前端相关的集成,REST WebServices 是可行的方法。

    【讨论】:

    • 非常感谢阿克塞尔。我遇到了使用 jms 的 Web 服务,这让我感到困惑。 Restful webservices使用http协议jms怎么用在restful webservices中。请解释。谢谢
    • 您有该服务的链接吗? Jms 可以使用 http,反之亦然(隧道?)
    猜你喜欢
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    • 2018-02-18
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多