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

protobufvsgRPC

如何解决《protobufvsgRPC》经验,为你挑选了2个好方法。

我尝试了解protobuf和gRPC以及如何使用它们.你能帮我理解一下:

考虑到OSI模型是什么,例如Protobuf在第4层?

通过消息传递思考如何"流动"gRPC做什么是protobuf错过的?

如果发件人使用protobuf,服务器可以使用gRPC还是gRPC添加只有gRPC客户端可以提供的内容?

如果gRPC可以进行同步和异步通信,Protobuf只是用于编组,因此与状态无关 - 真或假?

我可以在前端应用程序中使用gRPC而不是REST或GraphQL吗?

我已经知道 - 或者假设我这样做 - 那:

的Protobuf

用于数据交换的二进制协议

由谷歌设计

使用生成的"结构"类似客户端和服务器上的描述来取消 - / - 马歇尔消息

GRPC

使用protobuf(v3)

再次来自谷歌

RPC调用的框架

也使用HTTP/2

可以进行同步和异步通信

对于已经使用该技术的人,我再次认为这是一个简单的问题.我仍然会感谢你对我有耐心并帮助我.我也非常感谢网络深入研究这些技术.



1> Peter Wishar..:

协议缓冲区是(是?)接口定义语言和序列化库:

您可以在其IDL中定义数据结构,即描述要使用的数据对象

它提供了将数据对象转换为二进制文件的例程,例如用于从磁盘写入/读取数据

gRPC使用相同的IDL,但添加了语法"rpc",它允许您使用Protobuf数据结构作为数据类型定义远程过程调用方法签名:

您可以定义数据结构

您添加了rpc方法定义

它提供代码以通过网络提供和调用方法签名

如果需要,您仍然可以使用Protobuf手动序列化数据对象

在回答问题时:

    gRPC在第5,6和7层工作.Protobuf在第6层工作.

    当你说"消息传输"时,Protobuf并不关心传输本身.它只适用于任何数据传输的任何一端,将字节转换为对象

    根据定义使用gRPC意味着您使用的是Protobuf.您可以编写自己的客户端使用Protobuf但不能使用gRPC与gRPC进行互操作 - 但使用gRPC会更容易

    真正

    是的你可以



2> chilladx..:

实际上,gRPC和Protobuf是两个完全不同的东西.让我简化:

gRPC管理客户端和服务器可以交互的方式(就像具有REST API的Web客户端/服务器)

protobuf只是一个序列化/反序列化工具(就像JSON一样)

gRPC有两个方面:服务器端和客户端,可以拨打服务器.服务器公开RPC(即可以远程调用的函数).你有很多选择:你可以保护通信(使用TLS),添加认证层(使用拦截器),...

你可以在任何程序中使用protobuf,它不需要是客户端/服务器.如果你需要交换数据,并希望它们是强类型的,protobuf是一个不错的选择(快速和可靠).

话虽这么说,您可以将两者结合起来构建一个不错的客户端/服务器系统:gRPC将是您的客户端/服务器代码,并为您的数据协议提供原型.

PS:我写这篇论文是为了说明如何使用Go逐步构建带有gRPC和protobuf的客户端/服务器.


谢谢您,这有助于我实施示例。
推荐阅读
  •   简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。集群主要分为:高可用集群(HighAvailabilityCluste ... [详细]
  • lvs和nginx都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用。首先提醒,做技术切不可人云亦云&#x ... [详细]
  • LinuxCluster使用keepalived搭建高可用LVS一般比较常用于搭建高可用集群的有:heartbeat、keepalived、piranha。常见 ... [详细]
  • 开发笔记:API设计 | 对RESTful APIGraphQLRPC API 的思考
    本文由编程笔记#小编为大家整理,主要介绍了API设计|对RESTfulAPIGraphQLRPCAPI的思考相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文为转载,原连接:https:www.zhihu.comquestion40822826简单说一下吧做要解释这些要从netconf说起。netconf ... [详细]
  • 阿里首席架构师科普RPC框架
    RPC概念及分类RPC全称为RemoteProcedureCall,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系统架构中不同的系统之间的远程 ... [详细]
  • 小白轻松使用axis2构建webservice
    引言:使用axis2是来实现webservice接口是比较常见的,就我来说,如果要学一个首次接触东西,简单了解相关基础概念 ... [详细]
  • 本文说明了Linux系统的配置文件,在多用户、多任务环境中,配置文件控制用户权限、系统应用程序、守护进程、服务和其它管理任务。这些任务包括管理用户帐号、 ... [详细]
  • 我们身边的网络知识
    我们身边的网络常识今天咱们交流的主题是网络基础,这块东西对于咱们计算机或者通讯专业的人来说应该是很熟悉的,今天拿出来再说一说,是因为这块知识在咱们工作和生活中时刻都在使用,并且非常 ... [详细]
  • 负载均衡 LVS vs Nginx 对比
    前言今天总结一下负载均衡中LVS与Nginx的区别,之前看过好几篇博文一开始就说LVS是单向的,Nginx是双向的,我个人认为这是不准确的,LVS三种模式中,虽然DR模式以及TU ... [详细]
  • 开发笔记:GraphQL安全指北
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了GraphQL安全指北相关的知识,希望对你有一定的参考价值。*在616先知白帽 ... [详细]
  • Azure安全系列(3)Application Gateway 中的 Web应用防火墙 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
author-avatar
依心摇曳少校
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有