RPC框架之

  • 1)服务消费方(client)调用以本地调用方式调用服务;
  • 2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
  • 3)client stub找到服务地址,并将消息发送到服务端;
  • 4)server stub收到消息后进行解码;
  • 5)server stub根据解码结果调用本地的服务;
  • 6)本地服务执行并将结果返回给server stub;
  • 7)server stub将返回结果打包成消息并发送至消费方;
  • 8)client stub接收到消息,并进行解码;
  • 9)服务消费方得到最终结果。

HTTPS VS RPC

对于大型企业来说,内部子系统较多、接口非常多的情况下,RPC框架的好处就显示出来了,

首先就是长链接,不必每次通信都要像http一样去3次握手什么的,减少了网络开销;

其次就是RPC框架一般都有注册中心,有丰富的监控管理;发布、下线接口、动态扩展等,对调用方来说是无感知、统一化的操作。

 

流行的rpc框架

  1. gRPC是Google最近公布的开源软件,基于最新的HTTP2.0协议,并支持常见的众多编程语言。 我们知道HTTP2.0是基于二进制的HTTP协议升级版本,目前各大浏览器都在快马加鞭的加以支持。 这个RPC框架是基于HTTP协议实现的,底层使用到了Netty框架的支持。
  2. Thrift是Facebook的一个开源项目,主要是一个跨语言的服务开发框架。它有一个代码生成器来对它所定义的IDL定义文件自动生成服务代码框架。用户只要在其之前进行二次开发就行,对于底层的RPC通讯等都是透明的。不过这个对于用户来说的话需要学习特定领域语言这个特性,还是有一定成本的。
  3. Dubbo是阿里集团开源的一个极为出名的RPC框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔是及其鲜明的特色。同样 的远程接口是基于Java Interface,并且依托于spring框架方便开发。可以方便的打包成单一文件,独立进程运行,和现在的微服务概念一致。

分布式对象模型应该具有以下功能:

1 把分布在不同节点上的对象之间发送的消息转换为字节序列,这一过程称为编组。2 通过套接字建立连接并且发送编组后的消息。3 处理网络连接或传输消息时出现的各种故障。 4 为分布在不同节点上的对象提供分布式垃圾收集机制。5 为远程方法调用提供安全检查机制。6 服务器端运用多线程或非阻塞通信机制,确保远程对象具有很好的并发性能,能同时被多个客户访问。7 建立与特定问题领域相关的各种本地对象和远程对象。

RMI

rmi框架封装了所有底层通信细节,并且解决了编组、分布式垃圾收集、安全检查和方发行等通用问题。

RMI框架采用代理来负责客户与远程对象之间通过socket进行通信的细节。rmi框架为远程对象分别生成了客户端代理和服务端代理,位于客户端的代理类成为存根 stub,位于服务端的代理类成为骨架  skeleton。

 

客户程序从rmiregistry注册表中找到一个负责创建和查找其他远程对象的工厂对象(也是远程对象),得到其他远程对象,

 

https://wenku.baidu.com/view/90171bd03186bceb19e8bbdc.html?from=search

CXF/Axis2

webservice、是一种跨平台的rpc技术协议,有soap(建议对象访问协议)、uddi(独立于平台的框架,统一描述、发现与集成)、wsdl(网络服务描述语言,描述webservice,以及如何访问webservice)组成。soap是一种使用xml进行数据编码的通信协议,独立于平台、语言,简单可扩展,因基于http协议进行数据传输,能绕过防火墙。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值