一.RPC简介
RPC(英文全称:Remote Procedure Call)中文全称:远程过程调用
RPC简单来说就是一种为了解决远程调用服务的一种技术,使得调用者像调用本地服务一样方便透明。
二. 优点
- 分布式设计
- 部署灵活
- 解构服务
- 扩展性强
三.框架
- Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。
- Motan:微博内部使用的 RPC 框架,于 2016 年对外开源,仅支持 Java 语言。
- Tars:腾讯内部使用的 RPC 框架,于 2017 年对外开源,仅支持 C++ 语言。
- SpringCloud:国外 Pivotal 公司 2014 年对外开源的 RPC 框架,提供了丰富的生态组件。
- gRPC:Google 于 2015 年对外开源的跨语言 RPC 框架,支持多种语言。
- Thrift:最初是由 Facebook 开发的内部系统跨语言的 RPC 框架,2007 年贡献给了 Apache 基金,成为Apache 开源项目之一,支持多种语言。
四.诞生环境
在应用的迭代演进过程中,随着系统访问量、业务复杂度、代码复杂度的提高,应用逐渐从单体式架构向面向服务的分布式架构转变,所以RPC就产生了分布式架构的核心。
五.按响应方式分
(1)同步调用
客户端调用服务方法,等服务方返回结果或者超时,才继续自己的操作。
(实现方式有WebService和RMI)
(2)异步调用
客户端把消息发送给中间件,不等服务端返回直接继续自己的操作。
(搭配ActiveMQ和Kafka,RabbitMQ)
六.核心组件
(1)客户端(Client)
服务调用方。
(2)客户端存根(Client Stub)
存放服务端地址信息,将客户端的请求参数打包成网络消息,再通过网络发送给服务方
(3)服务端存根(Server Stub)
接受客户端发送过来的消息并解包,再调用本地服务。
(4)服务端(Server)
真正的服务提供者。

七.RPC常用技术
Dubbo:国内最早开源的RPC框架,由阿里巴巴公司开发并于2011年末对外开源,仅支持Java语言。
Motan:微博内部使用的RPC框架,于2016年对外开源,仅支持Java语言。
Tars:腾讯内部使用的RPC框架,于2017年对外开源,仅支持C++语言。
Spring Cloud:国外Pivotal公司2014年对外开源的RPC框架,仅支持Java语言。
更多丰富内容已整理至下方,点击可看
【尚学堂】RPC(远程过程调用)
资料编号:【B站java019】
目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程通信和相互调用。远程调用的应用场景极其广泛,实现的方式也各式各样。
纸上得来终觉浅,绝知此事要躬行。
好风凭借力,送你上青云!
各位小伙伴,感谢多多支持,点点关注哦~
本文详细介绍了RPC(远程过程调用)的核心原理,包括其诞生环境、优点、分类以及核心组件。重点讲解了Dubbo、Motan、Tars、SpringCloud和gRPC等主流RPC框架,并探讨了RPC的同步与异步调用方式。通过对RPC的全面解析,帮助读者更好地理解和应用分布式系统中的远程通信技术。

331

被折叠的 条评论
为什么被折叠?



