【RPC和Protobuf】之Protobuf环境配置及组合工作

Protobuf定义:是一种数据描述语言,作为接口规范的描述语言,可作为设计安全的跨语言RPC接口的基础工具

 

 

一、Protobuf入门

作用:最终保证RPC接口规范和安全

最基本的数据单元:message,类似于Go中的结构体structmessage中可以嵌套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

 
posted @ 2022-07-08 10:44  易先讯  阅读(213)  评论(0编辑  收藏  举报