gRPC之GoLang入门HelloWord(排版整理)

Posted 技术人技术事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gRPC之GoLang入门HelloWord(排版整理)相关的知识,希望对你有一定的参考价值。

这篇文章里我们要实现一个基于GoLang编程语言的gRPC的客户端与服务端通信的HelloWorld案例,喜欢grpc的一定要去实践。

编写hello_world.proto文件,如下代码:

如上代码,通过protobuffer的service定义一个接口HelloService,接口中有四个方法都以HelloWorld开头,入参是HelloRequest,出参是HelloResponse,通过最前面的rpc关键字标识为这是一个rpc接口。

编译hello_world.proto文件生成对应的go文件

笔者在go_common项目里新建了grpc项目结构如下代码

http://github.com/sunpengwei1992/go_common/grpc

进入项目之后可以先阅读README.md,了解各个包的功能

gRPC之GoLang入门HelloWord(排版整理)

进入proto文件夹下

cd go_common/grpc/helloworldnew/proto

执行命令如下

protoc --goout=plugins=grpc:. helloworld.proto

最后生成的hello_world.pb.go文件主要有以下几部分组成:

  1. 方法出入参结构体以及序列化和反序列方法

  2. 注册出入参结构体的init方法

  3. 客户端存根结构体和接口以及实现

  4. 服务端结构体和接口以及一个空实现

  5. stream的send和recv结构体和接口以及实现

  6. 服务的一些描述

这里粘一些核心代码,并且简化了一些出入参,完成代码参考github上的源码

gRPC之GoLang入门HelloWord(排版整理)

编写服务端代码

在server文件夹下新建helloworldserver.go文件,按如下步骤进行

  1. 创建HelloWorldServer结构体

  2. 实现pb.go文件中的HelloServiceServer接口实现所有方法

  3. StartServer(开启服务)

详细代码依然看github

gRPC之GoLang入门HelloWord(排版整理)

gRPC之GoLang入门HelloWord(排版整理)

编写客户端

在client目录下创建helloworldclient.go文件

gRPC之GoLang入门HelloWord(排版整理)

github代码运行说明

  • 先启动 hello_world_server_test.go

  • 再启动 hello_world_client_test.go

  • 如遇到启动的任何问题可留言

  • 如下截图

    




以上是关于gRPC之GoLang入门HelloWord(排版整理)的主要内容,如果未能解决你的问题,请参考以下文章

window下golang使用gRPC入门案例

Golang RPC 之 gRPC

Golang之gRPC初识

grpc之golang学习笔记2

Go语言入门篇-gRPC基于golang & java简单实现

Go GRPC 入门