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,了解各个包的功能
进入proto文件夹下
cd go_common/grpc/helloworldnew/proto
执行命令如下
protoc --goout=plugins=grpc:. helloworld.proto
最后生成的hello_world.pb.go文件主要有以下几部分组成:
方法出入参结构体以及序列化和反序列方法
注册出入参结构体的init方法
客户端存根结构体和接口以及实现
服务端结构体和接口以及一个空实现
stream的send和recv结构体和接口以及实现
服务的一些描述
这里粘一些核心代码,并且简化了一些出入参,完成代码参考github上的源码
编写服务端代码
在server文件夹下新建helloworldserver.go文件,按如下步骤进行
创建HelloWorldServer结构体
实现pb.go文件中的HelloServiceServer接口实现所有方法
StartServer(开启服务)
详细代码依然看github
编写客户端
在client目录下创建helloworldclient.go文件
github代码运行说明
先启动 hello_world_server_test.go
再启动 hello_world_client_test.go
如遇到启动的任何问题可留言
如下截图
以上是关于gRPC之GoLang入门HelloWord(排版整理)的主要内容,如果未能解决你的问题,请参考以下文章