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

XXX_*输入生成的*.pb.go文件

如何解决《XXX_*输入生成的*.pb.go文件》经验,为你挑选了1个好方法。

我正在编写有关gRPC 的教程。当我生成.pb.go文件时,我XXX_*在结构体中得到了某种类型。

这是我的consignment.proto文件:

syntax = "proto3";

package go.micro.srv.consignment; 

service ShippingService {
    rpc CreateConsignment(Consignment) returns (Response) {}
}

message Consignment {
    string id = 1;
    string description = 2;
    int32 weight = 3;
    repeated Container cOntainers= 4;
    string vessel_id = 5;
}

message Container {
    string id = 1;
    string customer_id = 2;
    string origin = 3;
    string user_id = 4;
}

message Response {
    bool created = 1;
    Consignment cOnsignment= 2;
}

这是.pb.go文件中的结构。有人可以告诉我为什么我有3 XXX种类型struct吗?该结构不应该反映我在自己中定义的内容proto吗?

type Consignment struct {
    Id                   string       `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
    Description          string       `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
    Weight               int32        `protobuf:"varint,3,opt,name=weight" json:"weight,omitempty"`
    Containers           []*Container `protobuf:"bytes,4,rep,name=containers" json:"containers,omitempty"`
    VesselId             string       `protobuf:"bytes,5,opt,name=vessel_id,json=vesselId" json:"vessel_id,omitempty"`
    XXX_NoUnkeyedLiteral struct{}     `json:"-"`
    XXX_unrecognized     []byte       `json:"-"`
    XXX_sizecache        int32        `json:"-"`
}

Carl Mastran.. 8

XXX_Protobuf库使用这些类型来存储未知字段。解码原型时,序列化数据中可能会有其他字段,库不知道该如何处理。例如,当数据的读取器和写入器使用原始文件的不同副本时,可能会发生这种情况。此功能有助于在客户端之间向后兼容,并在不同时间构建服务。

另外,XXX字段允许您公开扩展,它们是Proto2的一部分。它们在Proto3中被删除,以支持Any,但是库仍然需要支持它们。

至于你应该怎么做呢?我只是让他们独自一人,不要引用它们。您不需要设置它们,也不需要阅读它们。Go protobuf库将为您处理它们。



1> Carl Mastran..:

XXX_Protobuf库使用这些类型来存储未知字段。解码原型时,序列化数据中可能会有其他字段,库不知道该如何处理。例如,当数据的读取器和写入器使用原始文件的不同副本时,可能会发生这种情况。此功能有助于在客户端之间向后兼容,并在不同时间构建服务。

另外,XXX字段允许您公开扩展,它们是Proto2的一部分。它们在Proto3中被删除,以支持Any,但是库仍然需要支持它们。

至于你应该怎么做呢?我只是让他们独自一人,不要引用它们。您不需要设置它们,也不需要阅读它们。Go protobuf库将为您处理它们。


推荐阅读
  • gRPC框架学习:2、ProtocolBuffers学习文章目录gRPC框架学习:2、ProtocolBuffers学习1.前言2.定义消息类型(1). ... [详细]
  • 微服务之总体架构篇
    一、单体架构存在的问题缺点:1、难以维护:当单体应用业务不断迭代后代码量非常臃肿,模整个项目非常复杂,每次更改代码都可能带来新的bug;2、部署项目麻烦:庞大之后项目部署效率 ... [详细]
  • protobuf 3教程
    本文主要分享【protobuf3教程】,技术文章【4、protobuf进阶】为【无休止符】投稿,如果你遇到Go微服务实战-电商系统相关问题,本文相关知识或能到你。protobuf3教程目 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • k8s入坑之路(14)scheduler调度 kubelet管理及健康检查
    kubelet主要功能Pod管理在kubernetes的设计中,最基本的管理单位是pod,而不是container。pod是kubernetes在容器上的一层封装,由一组运行在同一 ... [详细]
  • 分布式服务框架和原理简章
    应用架构演进这里的架构演进应该是从服务化的角度来说,应该说随着业务发展,应用规模扩大,系统的一些公共服务就会抽取出来,独立开发,部署,维护,用来解决并发,扩展,维护的问题。传统垂直 ... [详细]
  • 0.编写.proto文件:syntaxproto3;optionjava_multiple_filestrue;optionjava_packageio.grp ... [详细]
  • 本文介绍了在Python中使用gRPC的方法示例,分享给大家,具体如下:使用ProtocolBuffers的跨平台RPC系统。安装使用pi ... [详细]
  • 可能会|人类_程序员架构修炼之道:如何设计“易理解”的系统架构?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了程序员架构修炼之道:如何设计“易理解”的系统架构?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 学习gRPC1.工作原理是什么
    什么是gRPCgRPC已经成为实现需要大规模快速运行的分布式软件系统的一项重要技术。简而言之,gRPC是一个API框架,它允许一个程序在互联网上的一个位置传递数据到另一个位置的另一 ... [详细]
  • 我是GoogleProtobuf的新手。我想解决一个问题,但我无法在互联网上找到答案, ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
author-avatar
真实的小莹_808
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有