golang optional golang option
首先定义Protobuf接口并生成Go代码,然后实现gRPC服务端和客户端,最后启动服务并调用SayHello方法,输出“Response:Hello,Alice”,完成Unary调用流程。

在Go语言中使用gRPC进行服务间通信,Unary模式是最基础、最常用的调用方式。它回复“一调用元”,即客户端发送一个请求,服务器返回一个响应。本文将带你从零开始实践Golang中gRPC Unary调用的完整开发流程。定义了Protobuf接口
要使用gRPC,首先需要定义服务接口和消息结构。
创建service.proto文件:
syntax = "proto3";package example;//定义请求消息message HelloRequest { string name = 1;}//定义响应消息message HelloResponse { string message = 1;}//定义服务service Greeter { rpc SayHello(HelloRequest) returns (HelloResponse);}
使用protoc工具生成Go代码:
protoc --go_out=. --go_opt=paths=source_relative \ --go-grpc_out=. --go-grpc_opt=paths=source_relative \ service.proto实现gRPC服务端
编写服务端逻辑,注册并启动gRPC服务器:
立即学习“go语言免费学习笔记(深入)”;
package mainimport ( "context" "log" "net" nbsp"google.golang.org/grpc" nbsppb "your-module-path/proto")type server struct { pb.UnimplementedGreeterServer}func (s *server) SayHello(ctx context.Context, req *pb.HelloRequest) (*pb.HelloResponse, error) { return pb.HelloResponse{ 消息: "Hello, " req.GetName(), }, nil}func main() { lis, err := net.Listen("tcp", ":50051") if err != nil { log.Fatalf("监听失败:v", err) } s := grpc.NewServer() pb.RegisterGreeterServer(s, server{}) log.Println("监听的gRPC服务器:50051") if err := s.Serve(lis); err != nil { log.Fatalf("服务失败:v", err) }}编写的gRPC客户端
客户端通过连接服务端,调用Unary方法SayHello:
package mainimport ( "context" "log" "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" pb "your-module-path/proto")func main() { // 建立与服务端的连接 conn, e
rr := grpc.Dial("localhost:50051", grpc.WithTransportCredentials(insecure.NewCredentials())) if err != nil { log.Fatalf("did not connect: v", err) } defer conn.Close() //客户端实例 客户端:= pb.NewGreeterClient(conn) //构造请求 req := pb.HelloRequest{Name: "Alice"} //发起Unary调用 resp, err := client.SayHello(context.Background(), req) if err != nil { log.Fatalf("无法问候:v", err) } log.Printf("Response: s", resp.GetMessage())}运行与验证
启动服务端:
go run server.go 无限画
千库网命名AI绘画创作平台467查看详情
另开终端运行客户端:
go run client.go
预期:
响应:Hello,Alice
说明gRPC Unary调用成功完成。
基本上就这些。只要定义好Proto、生成代码、实现服务和调用,就可以快速构建gRPC通信。注意错误处理和连接管理输出,在生产环境中建议启用TLS并设置超时。
以上就是Golang如何使用gRPC Unary模式调用服务_Golang gRPC Unary调用开发实践的详细内容,更多请关注乐哥常识网其他文章!在Windows上解决Go语言ZeroMQ绑定中的zmq.h文件挽回错误Go语言:使用接口语言实现对共享中断结构属性的通用排序深入理解Go中打样JSON结构的遍历与类型断言Go语言中高效处理TCP分片数据流
