pb
文章平均质量分 80
会飞的胖达喵
胖达是只爱打架的猫,而且还会飞~
展开
-
区分 Protobuf 中缺失值和默认值
转载地址:区分 Protobuf 中缺失值和默认值 - 知乎Protobuf 是目前非常主流的二进制序列化格式,GRPC 默认使用 Protobuf v3 格式,下面是 Protobuf 消息定义的例子:# proto2message Account { required string name = 1; # 必需 optional double profit_rate = 2 [default=-1.0]; # 可选,默认值修改成 -1.0,有 hasProfitRate()转载 2022-02-18 16:55:11 · 4930 阅读 · 0 评论 -
Protobuf 的 import 功能在 Go 项目中的实践
业务场景我们会有这样的需求:在不同的文件夹中定义了不同的 proto 文件,这些不同的文件夹可能是一些不同的 gRPC 服务。因为不想重复定义某一个message,所以其中一个服务可能会用到其他服务中定义的message,那么这个时候就需要使用到 proto 文件的import功能。接下来说说我在 Go 项目中使用 protobuf 的import时所遇到的坑。案例首先,我们来创建一个实验项目作为案例,便以说明,结构如下:文件 go.mod 中声明了该项目模块名modu...转载 2021-12-20 11:59:28 · 2125 阅读 · 1 评论 -
聊聊为什么 IDL 只能扩展字段而非修改
转载地址:聊聊为什么 IDL 只能扩展字段而非修改前几年业界流行使用 thrift, 比如滴滴。这几年 grpc 越来越流行,很多开源框架也集成了,我司大部分服务都同时开放 grpc 和 http 接口相比于传统的 http1 + json 组合,这两种技术都用到了 IDL, 即Interface description language接口描述语言,相当于增加了 endpoint schema 约束,不同语言只需要一份相同的 IDL 文件即可生成接口代码。很多人喜欢问:proto buf ..转载 2021-12-13 10:52:06 · 313 阅读 · 0 评论 -
golang *time.Time类型转*timestamppb.Timestamp
方法一:使用"github.com/golang/protobuf/ptypes"包UserListReplay_User[k].CreatedAt, _ = ptypes.TimestampProto(userinfo[k].CreatedAt) UserListReplay_User[k].UpdatedAt, _ = ptypes.TimestampProto(userinfo[k].UpdatedAt) UserListReplay_User[k].DeletedAt, _ = ptype原创 2021-10-12 15:31:05 · 2372 阅读 · 0 评论 -
Protocol Buffers 编码原理
转载地址:https://zhuanlan.zhihu.com/p/73549334当今云时代gRPC大行其道,gRPC 默认的序列化编码Protocol Buffers也跟着流行开来。都说 Protocol Buffers 效率很高,那到底高在哪里呢?今天就跟大家讨论一下 Protocol Buffers 的编码规则。代码里的对象基本分两类,一类的长度是固定的,比如 int32 占用 32 比特,double 占用 64 比特;另一类的长度是变化的,比如字符串。所以,在设计编码的时候,首先...转载 2021-04-15 17:32:56 · 241 阅读 · 0 评论