rpc,rmi,jms和webservices有什么区别?

时间:2019-04-04 07:05:52

标签: jms

有人可以解释rpc,rmi,jms和Web服务之间的区别是什么。我所知道的Web服务就是肥皂和休息。我不明白在使用Web服务时jms是如何出现的,还有esb的用途是什么?

1 个答案:

答案 0 :(得分:0)

RPC RMI 是在删除服务器应用程序上调用方法的紧密耦合方式。 RCP是C / C ++版本,RMI是Java版本,请参见What is the difference between Java RMI and RPC? 有关更多信息。 但是您可以放心地忘记RPC和RMI,因为它们之间有着紧密的联系,并且到现在为止,它们被认为是“不现代的”。例如,要从服务器获取“ Pete”的地址,客户端将调用诸如:layout_weight 这里的问题是,当您对服务器的API进行一些更改时,还需要升级所有客户端。如果一台服务器有多个客户端,则将导致“升级地狱”。

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

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

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

如果没有偏好,我的建议是:了解 JMS主题,并开始思考如何使用“事件驱动/推送计算”解决问题-特别是在后端,这是一个好的建筑。要进行更多与前端相关的集成, REST WebServices 是必经之路。