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 采用二进制效率高,复杂度较高。

目录
相关文章
|
存储 设计模式 Linux
Linux C/C++ reactor原理与实现
Linux C/C++ reactor原理与实现
413 0
开源项目推荐:3D重建开源库Colmap/OpenMVG/OpenMVS/Fade2D/2.5D
开源项目推荐:3D重建开源库Colmap/OpenMVG/OpenMVS/Fade2D/2.5D
835 0
|
机器学习/深度学习 自然语言处理 算法
词性标注(Part-of-Speech Tagging)
词性标注(Part-of-Speech Tagging)
578 3
|
12月前
|
开发者
【云故事探索】案例征集 · 12月获奖名单
【云故事探索】参与奖获奖名单公布。
|
分布式计算 负载均衡 数据安全/隐私保护
什么是RPC?有哪些RPC框架?
RPC(Remote Procedure Call,远程过程调用)是一种允许运行在一台计算机上的程序调用另一台计算机上子程序的技术。这种技术屏蔽了底层的网络通信细节,使得程序间的远程通信如同本地调用一样简单。RPC机制使得开发者能够构建分布式计算系统,其中不同的组件可以分布在不同的计算机上,但它们之间可以像在同一台机器上一样相互调用。
549 8
|
消息中间件 存储 Java
消息队列-死信队列
消息队列-死信队列
552 0
|
存储 NoSQL 大数据
大数据中数据存储 (Data Storage)
【10月更文挑战第17天】
1640 2
|
负载均衡 Java API
什么是RPC
【9月更文挑战第8天】什么是RPC
1239 3
|
NoSQL Java Redis
Reactor实战,创建一个简单的单线程Reactor(理解了就相当于理解了多线程的Reactor)
本文通过一个简单的单线程Reactor模式的Java代码示例,展示了如何使用NIO创建一个服务端,处理客户端的连接和数据读写,帮助理解Reactor模式的核心原理。
181 0
Reactor实战,创建一个简单的单线程Reactor(理解了就相当于理解了多线程的Reactor)
|
负载均衡 API 数据格式
RPC和HTTP的区别?
RPC和HTTP的区别?
1009 0