Protocol Buffers简单介绍

远航
2022-10-20 / 0 评论 / 126 阅读 / 正在检测是否收录...

基本用法
syntax = "proto3"; // 版本
// 创建一个给字符串md5的服务
package hash; // 包名

// 支持import其他proto文件
// protoc-gen-go 版本大于1.4.0, proto文件需要加上go_package,否则无法生成
option go_package = "./hash"; // 这里不同语言不一样,这里就列举了go

// 声明一个HashType枚举 需要返回的是大写还是小写
enum HashType {
  UPPER = 0;
  LOWER  = 1;
}
// 声明一个Request数据结构用来接收数据,最后会生成对应的结构体
message Request {
  string str = 1; // 字段的定义格式 类型 名称 = key
  string salt = 2;// 后面的数字就相当于数组的key不能重复
  optional HashType type = 3;
  // 支持的类型非常多就不一一列举了
}
// 声明一个Response数据结构用来返回数据,最后会生成对应的结构体
message Response {
  string md5Str = 1;
}
// 创建个hash服务 里面提供一个HashStr RPC方法接收Request 返回Response
service hash {
  rpc HashStr(Request) returns (Response) {}
}
安装生成代码工具
  1. 安装protoc命令 :https://github.com/protocolbuffers/protobuf/releases
  2. 下载对应版本解压,把bin目录加入到环境变量
  3. 命令行执行 protoc --version 显示版本号代表安装成功
安装生成golang代码工具:protoc-gen-g
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
生成代码
#仅生成数据结构 在当前位置 使用当前位置下的全部proto文件
protoc --go_out ./ ./*.proto
#生成带服务的代码
protoc --go_out=plugins=grpc:. *.proto
#生成PHP代码
protoc -I. \
--php_out=./ \
--grpc_out=./ \
--plugin=protoc-gen-grpc=/usr/local/bin/grpc_php_plugin \
*.proto
执行完就可以生成对应的server以及client代码和数据结构啦
微服务相关文章

一个简单的微服务系统架构笔记

0

评论 (0)

取消