golang grpc 调用示范
时间: 2023-07-08 08:51:51 浏览: 122
好的,以下是一个简单的 gRPC 调用示范:
1. 创建一个 gRPC 服务
在 protobuf 文件中定义服务和消息:
```protobuf
syntax = "proto3";
package helloworld;
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply) {}
}
message HelloRequest {
string name = 1;
}
message HelloReply {
string message = 1;
}
```
使用 `protoc` 编译生成 Go 代码:
```bash
protoc --go_out=plugins=grpc:. *.proto
```
生成的代码中包含 gRPC 的客户端和服务端的接口。
2. 创建一个 gRPC 客户端
```go
package main
import (
"context"
"fmt"
"log"
"google.golang.org/grpc"
pb "github.com/your_username/your_project/helloworld"
)
func main() {
// 创建一个 grpc 连接
conn, err := grpc.Dial("localhost:50051", grpc.WithInsecure())
if err != nil {
log.Fatalf("could not connect: %v", err)
}
defer conn.Close()
// 创建一个 grpc 客户端
c := pb.NewGreeterClient(conn)
// 调用服务端方法
name := "World"
r, err := c.SayHello(context.Background(), &pb.HelloRequest{Name: name})
if err != nil {
log.Fatalf("could not greet: %v", err)
}
fmt.Printf("Greeting: %s\n", r.Message)
}
```
3. 运行 gRPC 服务和客户端
启动 gRPC 服务:
```bash
go run server.go
```
运行 gRPC 客户端:
```bash
go run client.go
```
输出结果:
```bash
Greeting: Hello, World!
```
以上就是一个简单的 gRPC 调用示范,希望能对你有所帮助!
阅读全文