2

问题:

上周左右我一直在学习 Udemy 上的 Golang 微服务课程,但遇到了一个问题。

基本上,讲师通过编写 .proto 文件向我们介绍了 Go-Micro 和 RPC。现在我对 GRPC 有了一些经验,但对 Go-Micro 没有。问题是教练没有显示实际的protoc命令和最终的标志,而只是刷过它。我认为这将是一个微不足道的命令,但运行后protoc greeter.proto go_out=.我错过了客户端片段..

预期的:

pb.go 文件看起来与讲师的相同,在 pb.go 文件中有客户端和服务器片段。

实际的:

缺少客户端片段。

命令运行:

protoc greeter.proto go_out=.

代码:

.proto 文件:

syntax = "proto3";

service Greeter { 
    rpc Hello(HelloRequest) returns (HelloResponse) {}
}

message HelloRequest {
    string name = 1;
}

message HelloResponse {
    string greeting = 2;
}
4

3 回答 3

0

我使用这个命令:

protoc --proto_path=$GOPATH/src:. --micro_out=. --go_out=plugins=grpc:. *.proto 

从原始文件所在的目录。它生成服务以及客户端代码。我在 go-micro github 存储库和 go-micro 网站的众多示例之一中找到了这个命令。

然而,这适用于 grpc,但这个想法没问题。

于 2018-08-13T07:09:34.183 回答
0

以下是 protoc 命令的示例:

protoc proto/employee.proto --go_out=plugins=grpc:.

在 proto 文件夹中会生成一个新的文件employee.pb.go 。

如果您正在寻找 Golang gRPC 微服务的简单示例,请查看下面的帖子,其中包含 GitHub 中的工作代码解释的所有步骤: https ://softwaredevelopercentral.blogspot.com/2021/03/golang-grpc-microservice .html

于 2022-01-29T09:35:04.267 回答
0

希望这可以帮助 :

第一个是生成 proto 文件,第二个是用于反向代理

在这个 filename.proto 中:- filename 是你的文件名

# Generate proto
protoc -I/usr/local/include -I.  -I$GOPATH/src -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --go_out=google/api/annotations.proto=github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis/google/api,plugins=grpc:. filename.proto

#Reverse Proxy For REST
protoc -I/usr/local/include -I. -I$GOPATH/src -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --grpc-gateway_out=logtostderr=true:. filename.proto
于 2019-01-28T08:59:01.487 回答