热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

学习gRPC1.工作原理是什么

什么是gRPCgRPC已经成为实现需要大规模快速运行的分布式软件系统的一项重要技术。简而言之,gRPC是一个API框架,它允许一个程序在互联网上的一个位置传递数据到另一个位置的另一

什么是gRPC

gRPC 已经成为实现需要大规模快速运行的分布式软件系统的一项重要技术。简而言之,gRPC 是一个 API 框架,它允许一个程序在互联网上的一个位置传递数据到另一个位置的另一个程序中的独特函数进行处理。

其他 API 框架(如 REST)通常使用基于文本的格式(如 JSON 或 XML)在客户机和服务器之间传递数据,而在 gRPC 下,数据是以二进制格式在客户机和服务器端目标函数之间传递的。

有效载荷具有二进制特性,这也是它比其他方法更快的名声的来源之一。使用 gRPC 的程序可以以纳秒为单位执行,而不是使用基于文本的数据时通常使用的毫秒。

数据共享是起点。公司需要将数据从一台计算机转移到另一台计算机,以便以每个系统特有的方式处理信息。

RPC 背后的基本思想是,在一台机器上运行的过程(也称为函数)可以由网络上不同位置的其他机器共享。RPC 的好处是减少了系统冗余。当需要升级过程时,所有更改都发生在单个位置

学习gRPC - 1.工作原理是什么

为什么要gRPC

  • HTMLXML 一样是基于文本的。这些都是庞大的格式,因为它们需要开始和结束标签
  • JSON 是另一种流行的基于文本的数据格式,它甚至比 XML 更简洁,
  • gRPC 中,所有数据都以二进制格式传输。信息被序列化为一个紧凑的位集合,然后通过网络发送。然后,当位到达目标目的地时,它们被反序列化为文本。在 gRPC 中使用的二进制格式是协议缓冲。使用协议缓冲可以使数据快速传输,但是它也带来了成本,而这些成本是由于描述数据带来的开销而产生的。用空间换时间

gRPC 背后的基本概念。请注意,客户机和服务器通过 HTTP/2进行通信,信息可以作为单个请求/响应事件或连续流进行交换。

学习gRPC - 1.工作原理是什么

在 gRPC 模式中, .proto文件包含由服务器发布的函数签名。根据已发布的函数声明,客户机将使用此信息将消息传递给特定函数。定义的函数声明的示例如下 .proto文件中。
格式如下:

rpc Add (Request) returns (Response) {}

  • rpc 是一个保留的协议缓冲关键字,表示该函数是一个远程过程调用
  • Add 是函数的名称
  • (Request) 表示该函数有一个自定义消息类型的参数 Request
  • returns 是一个保留的协议缓冲关键字,表示函数返回类型的前缀
  • (Response)表示该函数将返回一个自定义消息类型,Response

关于 protobuf可以参考

关于协议缓冲编码的深入解释

需要了解哪些知识点

  • 如何使用协议缓冲文件将信息序列化和反序列化为二进制数据
  • 还需要熟悉处理流。流是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」互吹。


推荐阅读
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 大家好,我是李白。本文将分享一个从零开始的全栈项目,涵盖了设计、前端、后端和服务端的全面学习过程。通过这个项目,我希望能够帮助初学者更好地理解和掌握全栈开发的技术栈。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 本文将介绍如何在混合开发(Hybrid)应用中实现Native与HTML5的交互,包括基本概念、学习目标以及具体的实现步骤。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 一、Tomcat安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat8.0\webapps二、Tomcat8.0配置多个端口,其实也就是给T ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 浅析python实现布隆过滤器及Redis中的缓存穿透原理_python
    本文带你了解了位图的实现,布隆过滤器的原理及Python中的使用,以及布隆过滤器如何应对Redis中的缓存穿透,相信你对布隆过滤 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
author-avatar
形同陌路2502906543
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有