学习gRPC - 1.工作原理是什么
什么是gRPC
gRPC 已经成为实现需要大规模快速运行的分布式软件系统的一项重要技术。简而言之,gRPC 是一个 API 框架
,它允许一个程序在互联网上的一个位置传递数据到另一个位置的另一个程序中的独特函数进行处理。
其他 API 框架(如 REST)通常使用基于文本的格式(如 JSON 或 XML)在客户机和服务器之间传递数据,而在 gRPC 下,数据是以二进制格式
在客户机和服务器端目标函数之间传递的。
有效载荷具有二进制特性,这也是它比其他方法更快的名声的来源之一。使用 gRPC 的程序可以以纳秒
为单位执行,而不是使用基于文本的数据时通常使用的毫秒。
数据共享
是起点。公司需要将数据从一台计算机转移到另一台计算机,以便以每个系统特有的方式处理信息。
RPC 背后的基本思想是,在一台机器上运行的过程(也称为函数)可以由网络上不同位置的其他机器共享。RPC 的好处是减少了系统冗余
。当需要升级过程时,所有更改都发生在单个位置
为什么要gRPC
HTML
和XML
一样是基于文本的。这些都是庞大的格式
,因为它们需要开始和结束标签JSON
是另一种流行的基于文本的数据格式,它甚至比 XML 更简洁,- 在
gRPC
中,所有数据都以二进制格式传输。信息被序列化为一个紧凑的位集合
,然后通过网络发送。然后,当位到达目标目的地时,它们被反序列化为文本
。在 gRPC 中使用的二进制格式是协议缓冲。使用协议缓冲可以使数据快速传输,但是它也带来了成本,而这些成本是由于描述数据带来的开销而产生的。用空间换时间
。
gRPC 背后的基本概念。请注意,客户机和服务器通过 HTTP/2
进行通信,信息可以作为单个请求/响应事件或连续流进行交换。
在 gRPC 模式中, .proto
文件包含由服务器发布的函数签名。根据已发布的函数声明,客户机将使用此信息将消息传递给特定函数。定义的函数声明的示例如下 .proto文件中。
格式如下:
rpc Add (Request) returns (Response) {}
rpc
是一个保留的协议缓冲关键字,表示该函数是一个远程过程调用Add
是函数的名称(Request)
表示该函数有一个自定义消息类型的参数 Requestreturns
是一个保留的协议缓冲关键字,表示函数返回类型的前缀(Response)
表示该函数将返回一个自定义消息类型,Response
需要了解哪些知识点
- 如何使用协议缓冲文件将信息序列化和反序列化为二进制数据
- 还需要熟悉处理流。流是gRPC的一个强大特性
readmore
https://developers.google.com/protocol-buffers/docs/reference/proto3-spec
https://developers.google.com/protocol-buffers/docs/encoding
https://www.programmableweb.com/news/what-grpc-api-and-how-does-it-work/analysis/2020/10/08
github博客
微信公众号:chasays, 欢迎关注一起吹牛逼,也可以加微信号「xxd_0225」互吹。
作者:叉叉敌
博客:https://chasays.github.io/
微信公众号:Chasays, 欢迎关注一起吹牛逼,也可以加个人微信号「xxd_0225」互吹。
本博客大多为学习笔记或读书笔记,本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现