热门标签 | 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的客户端/服务器.


谢谢您,这有助于我实施示例。
推荐阅读
  • 体量|更多_初识protobuf ... [详细]
  • gRPC框架学习:2、ProtocolBuffers学习文章目录gRPC框架学习:2、ProtocolBuffers学习1.前言2.定义消息类型(1). ... [详细]
  • ### 优化后的摘要本学习指南旨在帮助读者全面掌握 Bootstrap 前端框架的核心知识点与实战技巧。内容涵盖基础入门、核心功能和高级应用。第一章通过一个简单的“Hello World”示例,介绍 Bootstrap 的基本用法和快速上手方法。第二章深入探讨 Bootstrap 与 JSP 集成的细节,揭示两者结合的优势和应用场景。第三章则进一步讲解 Bootstrap 的高级特性,如响应式设计和组件定制,为开发者提供全方位的技术支持。 ... [详细]
  • 深入探索Node.js新框架:Nest.js第六篇
    在本文中,我们将深入探讨Node.js的新框架Nest.js,并通过一个完整的示例来展示其强大功能。我们将使用多个装饰器创建一个基本控制器,该控制器提供了多种方法来访问和操作内部数据,涵盖了常见的CRUD操作。此外,我们还将详细介绍Nest.js的核心概念和最佳实践,帮助读者更好地理解和应用这一现代框架。 ... [详细]
  • REST API 时代落幕,GraphQL 持续引领未来
    尽管REST API已广泛使用多年,但在深入了解GraphQL及其解决的核心问题后,我深感其将引领未来的API设计趋势。GraphQL不仅提高了数据查询的效率,还增强了灵活性和性能,有望成为API开发的新标准。 ... [详细]
  • 计算机网络计算机网络分层结构
    为了解决计算机网络复杂的问题,提出了计算机网络分层结构。计算机网络分层结构主要有OSI7层参考模型,TCPIP4层参考模型两种。为什么要分层不同产商 ... [详细]
  • 计算机网络概述计算机网络基本概念计算机网络计算机网络是互连的、自治的计算机集合。协议计算机网络中的实体在进行数据交换的过程中必须遵循的规定或约定,称为网络协议。协议的三个要素:语法 ... [详细]
  • 代码查看工具_不好用打我 | 六个前端开发在线工具推荐
    https:blog.csdn.netEAPxUOarticledetails105648315EnjoyCSS老实说,虽然我做过许多前端开发,但我并不 ... [详细]
  • SpringBoot整合GraphQL第(二)章节
    Postman请求方式Post请求JSON格式传递{query:{selectUserById(id:1){idnameecountlout}}}根据id进行查询组 ... [详细]
  • Katalon Studio Enterprise 8.5 CrackNew
    关于Katalon平台Katalon平台是一个现代化的综合质量管理平台,使团队能够轻松高效地测试、启动和优化最佳数字体验。它提供了允许测试自动化团队协作、管理、扩展和 ... [详细]
  • 开发笔记:API设计 | 对RESTful APIGraphQLRPC API 的思考
    本文由编程笔记#小编为大家整理,主要介绍了API设计|对RESTfulAPIGraphQLRPCAPI的思考相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 启动rocketmq_RocketMQ安装Linux/Mac/Window  第318篇
    相关历史文章(阅读本文之前,您可能需要先看下之前的系列?)国内最全的SpringBoot系列之三2020上半年发文汇总「值得收藏」GraphQL的探索之路–一种为你的 ... [详细]
  • Google ProtoBuf的使用
    Google的protobuf太好用了,又小,读写又快跑步快慢受鞋的影响太大了,但是造鞋的工具研究起来还是很有难度的,百度 ... [详细]
  • Go实战--golang中使用gRPC和Protobuf实现高性能api(golangprotobuf、google.golang.orggrpc),Go语言社区,Golang程序 ... [详细]
  • 在.proto文件中使用导入时,出现“找不到文件”错误。 我正在使用Rider,但在使用VisualS ... [详细]
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社区 版权所有