grpc-demo on windows
1. 生成proto文件
>1. 安装grpc protoc生成工具
# https://github.com/protocolbuffers/protobuf/releases
>2. golang安装支持.proto文件的plugins
#setting -> plugins -> search "protobuf support"
>3. 安装grpc
# go get -u google.golang.org/grpc
>4. 安装grpc依赖, 安装成功后,会在$GOPATH/bin目录下生成两个2进制文件
# go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
# go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
>5. 加入环境变量
# E:\Go-project\bin
6>. 编写data.proto
# mkdir proto
# mkdir ./proto/pb
syntax = "proto3"; package test; option go_package="./pb"; message ProductRequest { int32 id = 1; } message ProductResponse { int32 stock = 1; } service ProService { rpc GetStockById(ProductRequest) returns (ProductResponse); }
>7. 编译proto,生成data.pb.go和data_grpc.pb.go
#protoc --go_out=. --go-grpc_out=. *.proto
2. 编写服务器端代码
package main import ( "context" "fmt" "gitee.com/grpc-demo/proto/pb" "google.golang.org/grpc" "log" "net" ) type Server struct { pb.UnimplementedProServiceServer } func (s *Server) GetStockById(ctx context.Context, pro *pb.ProductRequest) (*pb.ProductResponse, error) { // 业务处理 return &pb.ProductResponse{ Stock: pro.Id, }, nil } func main() { fmt.Println("start grpc server") listen, err := net.Listen("tcp", ":8012") if err != nil { log.Fatalf("fail to start server: %v", err) } s := grpc.NewServer() pb.RegisterProServiceServer(s, &Server{}) err = s.Serve(listen) if err != nil { log.Fatalf("fail to start grpc-server: %v", err) } }
3.编写客户端代码
package main import ( "context" "fmt" "gitee.com/grpc-demo/proto/pb" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" "log" "time" ) func main() { fmt.Println("start client") conn, err := grpc.Dial("127.0.0.1:8012", grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithBlock()) if err != nil { log.Fatalf("fail to dial: %v", err) } defer conn.Close() client := pb.NewProServiceClient(conn) ctx, cancel := context.WithTimeout(context.Background(), time.Second) defer cancel() req := &pb.ProductRequest{ Id: 256, } res, err := client.GetStockById(ctx, req) if err != nil { log.Fatalf("get stock fail: %v", err) } log.Printf("get stock success: %v", res) }
4. 启动服务器
#go run .\server\main.go
#go run .\client\main.go
相关推荐
包含翻译后的API文档:grpc-core-1.24.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:io.grpc:grpc-core:1.24.0; 标签:core、grpc、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开...
包含翻译后的API文档:grpc-api-1.24.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:io.grpc:grpc-api:1.24.0; 标签:api、grpc、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开“index...
protoc-gen-grpc-java-1.40.0-osx-aarch_64 mac arm芯片平台grpc生成java的支持。官网上面没有,这是基于源码编译生成的。 pom.xml:(protoc-gen-grpc-java-1.40.0.pom) <?xml version="1.0" encoding="UTF-8"?> ...
包含翻译后的API文档:grpc-api-1.24.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:io.grpc:grpc-api:1.24.0; 标签:api、grpc、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用...
gRPC-java 1.9.0 已发布,gRPC-java 是谷歌 RPC 框架 gRPC 的 Java 实现。gRPC 是一个高性能、开源、通用的 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架。 gRPC 基于 ...
spring-dubbo-grpc-demo
在Java环境下使用gRPC时,需要对.proto文件进行编译,生成服务端和客户端的存根代码,这正是`protoc`和`protoc-gen-grpc-java`工具的作用。 `protoc`是Protocol Buffers的编译器,它能够读取.proto文件并生成对应...
包含翻译后的API文档:grpc-stub-1.24.0-javadoc-API文档-中文(简体)版.zip; Maven坐标:io.grpc:grpc-stub:1.24.0; 标签:stub、grpc、jar包、java、中文文档; 使用方法:解压翻译后的API文档,用浏览器打开...
开源项目-grpc-ecosystem-grpc-gateway.zip,GitHub - grpc-ecosystem/grpc-gateway: gRPC to JSON proxy generator
protoc-gen-grpc-java-1.9.1-windows-x86_64.exe
包含翻译后的API文档:rpc-grpc-impl-1.3.8-javadoc-API文档-中文(简体)版.zip; Maven坐标:com.alipay.sofa:rpc-grpc-impl:1.3.8; 标签:impl、sofa、alipay、rpc、grpc、jar包、java、中文文档; 使用方法:解压...
GRPC-Java 源码环境构建 GRPC-Java 源码环境构建是一个相对复杂的过程,需要具备一定的技术基础和经验。本文将详细介绍 GRPC-Java 源码环境构建的步骤和过程,旨在帮助读者快速搭建 GRPC-Java 源码环境。 一、...
包含翻译后的API文档:opencensus-contrib-grpc-metrics-0.21.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:io.opencensus:opencensus-contrib-grpc-metrics:0.21.0; 标签:opencensus、metrics、...
开源项目-grpc-ecosystem-go-grpc-middleware.zip,gRPC Middleware - reusable auth, logging, retry, tracing libraries for Golang
【grpc-c】是一个基于Google开源的gRPC框架的C语言实现。gRPC是一个高性能、开源且通用的RPC框架,它面向移动和HTTP/2设计,提供了客户端和服务器框架,可以轻松构建可扩展的服务。gRPC的核心是ProtoBuf(Protocol ...
包含翻译后的API文档:grpc-core-1.24.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:io.grpc:grpc-core:1.24.0; 标签:core、grpc、jar包、java、中英对照文档; 使用方法:解压翻译后的API文档,用...
protoc-gen-grpc-java-1.4.0-linux-aarch_64.exe