Google ProtoBuf介绍

一、背景

前段时间了解到有公司用gRPC、Pulsar、Nacos、SkyWalking、OpenTelemetry、Prometheus、Envoy、Grafana、Sonar、PowerJob、Apollo 这些技术,也是Java路线的,很惭愧,这些我几乎都不了解,从13年以来玩Android、玩Python、玩Linux、玩产品,对Java新技术关注远远不够,现在必须跟进了。。。

gRPC是用ProtoBuf来做序列化/反序列化,所以今天先了解一下ProtoBuf序列化怎么做。

二、ProtoBuf介绍

ProtoBuf是一种语言无关、【效】、可扩展的对象序列化方法。

序列化方法有很多种,ProtoBuf是当前为止性能最高效的序列化方法。

Proto分为Proto2和Proto3两个版本,下面的例子使用Proto3版本。

具体的语法不做详细解说,可以参看官方文档

https://developers.google.cn/protocol-buffers/docs/proto3?hl=zh_cn

三、ProtoBuf使用

1、创建.proto文件,定义数据结构

IDEA中安装ProtoBuf Support插件,支持编写.proto文件时语法提示。

项目中添加protobuf-java依赖


<dependency>
  <groupId>com.google.protobuf</groupId>
  <artifactId>protobuf-java</artifactId>
  <version>3.18.0-rc-2</version>
</dependency>

配置protobuf-maven-plugin插件,这个插件用于将.proto文件生成对应类代码。注:这个插件安装没有成功,后来是通过命令行执行编译。

在/src/main下创建 proto Source目录,创建User.proto文件如下。

2、编译.proto文件,生成类

mac下安装protobuf,下载protobuf3.18


./configure --prefix=/usr/local/protobuf
sudo -i
make && make install

配置环境

执行编译命令生成UserEntity类

protoc --java_out=. User.proto

3、调用类实现序列化,反序列化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值