首页手机golang optional golang option

golang optional golang option

圆圆2025-11-28 07:00:32次浏览条评论

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

golang如何使用grpc unary模式调用服务_golang grpc 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分片数据流

Golang如何使用
w11隐藏任务栏 win11隐藏状态栏
相关内容
发表评论

游客 回复需填写必要信息