当前位置:网站首页>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版本号,接口名称,接口版本,方法名称,参数类型列表,参数,附加信息
- 序列化和反序列化
边栏推荐
猜你喜欢
彻底删除MySQL教程
How to get started with MOOSE platform - an example of how to run the official tutorial
枚举和联合(自定义类型)-C语言
【C语言】数组名是什么
Shell基础
基于asp.net的法律援助平台的设计与实现(附项目链接)
LeetCode_Dec_3rd_Week
库函数的模拟实现-C语言
Tencent and NetEase have taken action one after another. What is the metaverse that is so popular that it is out of the circle?
【c语言】整数的二进制表现形式是什么?
随机推荐
LeetCode_Dec_1st_Week
LeetCode_Nov_5th_Week
strlen 转义字符
2022在 Go (Golang) 中使用微服务的系统课程
LeetCode_Dec_3rd_Week
抽象类、内部类和接口
Tensorflow/Pytorch安装(Anaconda环境下,无版本冲突,亲测有效)
LeetCode_Nov_4th_Week
集合---ArrayList的底层
MNIST Handwritten Digit Recognition - Image Analysis Method for Binary Classification
[开发杂项][调试]debug into kernel
MNIST Handwritten Digit Recognition - Building a Perceptron from Zero for Two-Classification
win10下mediasoup搭建过程中的一些坑记录
The Unity of ML - agents interpret parameter Settings
C语言静态变量static的分析
bind()系统调用的用处
通用解决端口占用问题
[日常办公][ssh]cheatsheet
target has libraries with conflicting names: libcrypto.a and libssl.a.
树和二叉树