RPC原理

RPC,即 Remote Procedure Call(远程过程调用),它可以很好的解耦系统,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC可以基于HTTP协议实现,也可以直接在TCP协议上实现。在OSI网络通信模型中,RPC跨越了传输层和应用层,使得开发包括网络分布式多程序在内的应用程序更加容易。业界一直提倡“微服务“的概念,而服务之间通信目前有两种方式,RPC就是其中一种(另一种是事件驱动方式)。RPC可以保证不同服务之间的互相调用,即使是跨语言跨平台也不是问题,
摘要由CSDN通过智能技术生成

RPC,即 Remote Procedure Call(远程过程调用),它可以很好的解耦系统,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

RPC可以基于HTTP协议实现,也可以直接在TCP协议上实现。

在OSI网络通信模型中,RPC跨越了传输层和应用层,使得开发包括网络分布式多程序在内的应用程序更加容易。

业界一直提倡“微服务“的概念,而服务之间通信目前有两种方式,RPC就是其中一种(另一种是事件驱动方式)。RPC可以保证不同服务之间的互相调用,即使是跨语言跨平台也不是问题,让构建分布式系统更加容易。此外,RPC框架都会有服务降级、流量控制的功能,可以保证服务的高可用。

现在的 RPC 框架有: Dubbo、Thrift、grpc 等。

互联网公司广泛使用 Protobuf、Thrift、Avro 等成熟的序列化解决方案来搭建 RPC 框架。

需要说明的是,通信框架需要支持同步(BIO)和异步(NIO)方式,一般底层使用Netty。

RPC的核心流程:

  1. 服务消费方(client)调用以本地调用方式调用服务。
  2. client stub 接收到调用后负责将方法、参数等打包成能够进行网络传输的消息体,然后通过网络远程发送给服务方。
  3. server stub 收到消息后进行解码,并根据解码的结果来调用本地的服务。
  4. 本地服务执行并将执行结果返回给 server stub。
  5. server stub 将返回结果打包成消息并发送至消费方;
  6. client stub 接收到消息,并进行解码࿱
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值