RPC基础

简介: RPC基础

1 解决什么问题

现代软件系统,越来越讲究海量用户,传统的服务器体系在单个进程里面开多线程无法满足了;于是产生了分布式系统,将业务拆分成很多小的服务,也就是所谓的微服务:而它的基石就是RPC框架。

RPC:远程过程调用。

传统的socket编程与采用rpc的比较,如下图:

2 RPC分类

目前主流的rpc框架

grpc: google的 基于protobuf http2.x 支持多语言

thrift: facebook 支持多语言

Dubbo: 阿里的 Java实现

brpc: 百度 C++实现 支持默认协程,也可以设置常规的线程方式

3 框架原理

原理图如下:

核心功能:

1 服务寻址

2 数据序列化和反序列化

3 网络传输

基于protobuf的service是rpc的基石,protobuf中的结构体是message,而service是将request和response两者结合起来。

4 REST ful与rpc区别

两者都是远程调用方式;

rest ful:实际上是一种标准;

rest:通过url来定位资源,使用http来描述操作(GET,PUT,PUT,DELETE)

rest :

1 对外提供服务,公共服务;常常用在云产品中;

2 易用性高,效率低,易理解

rpc:

1 服务器内部之间调用,一般不对外;

2 采用二进制效率高,复杂度较高。

目录
相关文章
|
JSON 网络协议 Dubbo
RPC框架(技术总结)
RPC框架(技术总结)
RPC框架(技术总结)
|
3月前
|
Dubbo 网络协议 Java
RPC框架:一文带你搞懂RPC
这篇文章全面介绍了RPC(远程过程调用)的概念、原理和应用场景,解释了RPC如何工作以及为什么在分布式系统中广泛使用,并探讨了几种常用的RPC框架如Thrift、gRPC、Dubbo和Spring Cloud,同时详细阐述了RPC调用流程和实现透明化远程服务调用的关键技术,包括动态代理和消息的编码解码过程。
RPC框架:一文带你搞懂RPC
|
4月前
|
分布式计算 负载均衡 数据安全/隐私保护
什么是RPC?有哪些RPC框架?
RPC(Remote Procedure Call,远程过程调用)是一种允许运行在一台计算机上的程序调用另一台计算机上子程序的技术。这种技术屏蔽了底层的网络通信细节,使得程序间的远程通信如同本地调用一样简单。RPC机制使得开发者能够构建分布式计算系统,其中不同的组件可以分布在不同的计算机上,但它们之间可以像在同一台机器上一样相互调用。
148 8
|
4月前
|
网络协议 Dubbo Java
什么是RPC?RPC和HTTP对比?RPC有什么缺点?市面上常用的RPC框架?
选择合适的RPC框架和通信协议,对于构建高效、稳定的分布式系统至关重要。开发者需要根据自己的业务需求和系统架构,综合考虑各种因素,做出适宜的技术选型。
374 1
|
6月前
|
负载均衡 监控 网络协议
rpc简介
rpc的了解
57 6
|
消息中间件 XML JSON
一文就读懂RPC远程调用核心原理
rpc的全称是Remote Procedure Call,即远程过程调用,是分布式系统的常用通信方法。 Remote,简单来说的话就是两个不同的服务之间,两个服务肯定是两个不同的进程。因此,我们就从跨进程进行访问的角度去理解就行了。 Procedure,意思是一串可执行的代码,我们写Java的方法,就是一段课程行的代码。 Call,即调用,调用的就是跨了进程的方法。
372 0
一文就读懂RPC远程调用核心原理
|
缓存 运维 监控
|
分布式计算 网络协议 算法
最简单的RPC框架实现
最简单的RPC框架实现
233 0
最简单的RPC框架实现
|
Dubbo 网络协议 JavaScript
【RPC基础系列1】聊聊RPC
学习Dubbo时,里面讲到了GRPC,然后最新做的项目中,也用到了GRPC,再结合之前用到的Thrift,感觉这块知识掌握程度还是比较弱,只停留在会用的阶段,然后也没有形成体系,就想把这块知识整体梳理一下。
169 0
【RPC基础系列1】聊聊RPC
|
负载均衡 Dubbo Java
RPC 核心,万变不离其宗(下)
RPC 核心,万变不离其宗(下)
RPC 核心,万变不离其宗(下)