学习rpc

虽然现在非常火的RPC技术以SpringCloud和Dubbo(x)为主流,但是如果做接口调用,还是逃不了要用一些较传统的技术。前几天在做接口调用时恰巧用到了WebService的相关技术(8,9两节是真实的开发),正好都在这里写一写。

1. RPC相关基础

1.1 什么是RPC

----| RPC(Remote Procedure Call),远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。(来自百度百科)

----| RPC允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不需要显式编码这个远程调用的细节。(来自CSDN博客:https://blog.csdn.net/mindfloating/article/details/39473807)

1.2 RPC的特点

从上面的概念中,能大概总结出RPC的基本特点如下:

  • 通过网络传输的
  • 跨终端、跨平台的
  • 基于请求-响应的
  • 只调用过程,不需关注细节

1.3 RPC的基本原理

在底层去看,RPC其实就是将流从一台计算机传输到另外一台计算机,无论是基于传输协议(http、tcp、udp等等)和网络IO(bio、nio)来实现。

1.4 常见的RPC的调用技术(重点)

  • SpringCloud(Spring的,基于Socket的,SOA架构的分布式框架)
  • Dubbo(x)(阿里巴巴的,基于Socket的,SOA架构的分布式框架)
  • WebService(跨语言的,基于SOAP协议,走xml数据或json数据)调用天气预报
  • Hessian(跨语言的,基于Binary-RPC协议,走二进制数据)
  • HttpClient(通常用于RESTful风格的调用,跨语言,基于http和json) 我估计是app调用客户端的
  • jdk原生(HttpURLConnection)
  • RMI
  • JMS

 

RMI (Remote Method Invocation)

RMI 采用stubs 和 skeletons 来进行远程对象(remote object)的通讯。stub 充当远程对象的客户端代理,有着和远程对象相同的远程接口,远程对象的调用实际是通过调用该对象的客户端代理对象stub来完成的,通过该机制RMI就好比它是本地工作,采用tcp/ip协议,客户端直接调用服务端上的一些方法。优点是强类型,编译期可检查错误,缺点是只能基于JAVA语言,客户机与服务器紧耦合。

 

JMS(Java Messaging Service)

JMS是Java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。JMS支持两种消息模型:Point-to-Point(P2P)和Publish/Subscribe(Pub/Sub),即点对点和发布订阅模型。
 

 

参考:

https://blog.csdn.net/weixin_42672054/article/details/81708464#t5

https://blog.csdn.net/shan9liang/article/details/8995023

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值