当前位置:网站首页>gRPC intro 1:RPC
gRPC intro 1:RPC
2022-08-04 05:32:00 【real沛林】
gRPC is google RPC,so we need to learn RPC first.
official google link:https://www.grpc.io/docs/
GitHub link:https://github.com/grpc/grpc
前言:RPC
what is RPC
Remote Procedure Call(RPC):远程过程调用。当两个物理分离的子系统需要建立逻辑上的关联时,RPC 是牵线搭桥的常见技术手段之一。除 RPC 之外,常见的多系统数据交互方案还有分布式消息队列、HTTP 请求调用、数据库和分布式缓存等。其中 RPC 和 HTTP 调用是没有经过中间件的。
过程是什么? 过程就是业务处理、计算任务,更直白理解,就是程序。(像调用本地方法一样调用远程的过程。)
RPC Requirement
- 网络协议和网络IO模型对其透明
- 信息格式对其透明
- 应该有跨语言能力
RPC Component
RPC采用Client-Server结构,通过Request-Response消息模式实现。
- Client
- Server
- Stub/Proxy
- Message Protocol
- Transfer/Network Protocol
- Selector/Processor: “负责执行RPC接口实现” 的角色.包括:管理RPC接口的注册,判断客户端的请求权限,控制接口实现类的执行在内
- IDL
影响RPC框架性能的因素
- 使用的网络IO模型
- 基于的网络协议
- 消息封装格式。消息封装格式的设计是目前各种RPC框架性能差异的最重要原因,这就是为什么几乎所有主流的RPC框架都会设计私有的消息封装格式的原因.dubbo中消息体数据包含dubbo版本号,接口名称,接口版本,方法名称,参数类型列表,参数,附加信息
- 序列化和反序列化
边栏推荐
- counting cycle
- Fabric v1.1 环境搭建
- target has libraries with conflicting names: libcrypto.a and libssl.a.
- LeetCode_Nov_2nd_Week
- LeetCode_Nov_3rd_Week
- 库函数的模拟实现-C语言
- Miscellaneous [development] [VS Code] remote - SSD retry failed
- Treating as key frame since WebRTC-SpsPpsIdrIsH264Keyframe is disabled 解决
- Tensorflow/Pytorch安装(Anaconda环境下,无版本冲突,亲测有效)
- LeetCode_22_Apr_2nd_Week
猜你喜欢
MNIST Handwritten Digit Recognition - Building a Perceptron from Zero for Two-Classification
Detailed steps to install MySQL
虚幻引擎 5 完整指南[2022六月最新课程学习内容]
基于Webrtc和Janus的多人视频会议系统开发5 - 发布媒体流到Janus服务器
基于语音识别的QT设计的csgo互动类视频游戏
Copy Siege Lion's Annual "Battle" | Review 2020
MNIST Handwritten Digit Recognition - Image Analysis Method for Binary Classification
C语言对文件的操作(完整版)
LeetCode_Dec_1st_Week
基于Webrtc和Janus的多人视频会议系统开发6 - 从Janus服务器订阅媒体流
随机推荐
Golang environment variable settings (2)--GOMODULE & GOPROXY
基于asp.net的法律援助平台的设计与实现(附项目链接)
webrtc代码解读二:音视频播放同步过程
Deep learning, "grain and grass" first--On the way to obtain data sets
集合--LinkedList
Design and implementation of legal aid platform based on asp.net (with project link)
淘宝分布式文件系统存储引擎(一)
bind()系统调用的用处
webrtc代码解读一:音频数据的接收解码播放过程
LeetCode_Dec_2nd_Week
位段-C语言
【C语言】数组名是什么
SSO单点登陆
IDEA中创建web项目实现步骤
[English learning][sentence] good sentence
[日常办公][杂项][vscode]tab space
LeetCode_22_Apr_4th_Week
分布式cache项目
华为鲲鹏arm服务器下使用webrtc和boost踩坑记--编译篇
调用时序错误导致webrtc无法建立链接