【RPC和Protobuf】之Protobuf环境配置及组合工作
Protobuf定义:是一种数据描述语言,作为接口规范的描述语言,可作为设计安全的跨语言RPC接口的基础工具
一、Protobuf入门
作用:最终保证RPC接口规范和安全
最基本的数据单元:message,类似于Go中的结构体struct,message中可以嵌套message或其他基础数据类型的成员
二、安装Protobuf
2.1 从https://github.com/protocolbuffers/protobuf/releases下载
2.2 安装针对Go语言的代码生成插件,可以通过go get github.com/golang/protobuf/protoc-gen-go命令安装
2.3 将protoc-3.14.0-win64\bin中的protoc.exe拷贝到c:\windows\system32中
2.4 测试protoc安装是否成功:protoc--go_out=.hello.proto
syntax = "proto3";
package main;
Option go_package ="./;main";
message String {
string value = 1;
}
syntax = "proto3";
package main;
message String {
string value = 1;
}
2.5 生成.go文件:hello.pb.go
三、Goland支持Proto文件类型
2.1 配置代理
2.2 搜索插件安装
2.3 注册支持文件类型.proto
三、RPC和 Protobuf组合工作
type HelloService struct{}
//输出和输入参数都改用Protobuf定义的String类型
func (p *HelloService) Hello(request *String, reply *String) error {
reply.Value = "hello:" + request.GetValue()
return nil
}
四、通过Protobuf定义RPC服务接口
新的hello.proto文件
service HelloService {
rpc Hello (String) returns (String);
}
//针对grpc生成代码,否则只对message生成代码
protoc --go_out=plugins=grpc:. hello.proto
本文来自博客园,作者:易先讯,转载请注明原文链接:https://www.cnblogs.com/gongxianjin/p/16457448.html