千家信息网

golang中如何使用GRPC

发表于:2024-12-04 作者:千家信息网编辑
千家信息网最后更新 2024年12月04日,golang中如何使用GRPC,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。编写proto中间文件syntax="proto3";p
千家信息网最后更新 2024年12月04日golang中如何使用GRPC

golang中如何使用GRPC,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

编写proto中间文件

syntax="proto3";package services;message ProdRequest {        int32 prod_id=1;}message ProdResponse {        int32 prod_stock=1;}

生成Prod.pb.go文件

进入proto文件所在目录

protoc --go_out=../services Prod.proto

proto文件年增加rpc接口定义

syntax="proto3";package services;message ProdRequest {        int32 prod_id=1;}message ProdResponse {        int32 prod_stock=1;}service ProdService {        rpc GetProdStock (ProdRequest) returns (ProdResponse);}

生成rpc接口Prod.pb.go文件

protoc --go_out=plugins=grpc:../services Prod.proto

grpc-gateway

作用

对外部提供http方式访问rpc服务

下载依赖

 go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway  go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger

修改proto定义

syntax="proto3";package services;import "google/api/annotations.proto";message ProdRequest {        int32 prod_id=1;}message ProdResponse {        int32 prod_stock=1;}service ProdService {        rpc GetProdStock (ProdRequest) returns (ProdResponse){                option (google.api.http) ={                        get: "/v1/prod/{prod_id}"                };        }}

protoc生成gateway类

protoc --grpc-gateway_out=logtostderr=true:../services Prod.proto

关于golang中如何使用GRPC问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

0