您的位置 首页 golang

使用 Go (golang) 构建 gRPC:Server Streaming API

之前,我们讨论了 gRPC Unary API,您可以在此链接中查看。在本文中,我将介绍使用服务器流响应实现客户端和服务器 Go 应用程序的 gRPC 调用。

什么是服务器流 API?

  • 得益于HTTP/2 ,Server Streaming RPC API 是一种新的 API 。
  • 客户端将向服务器发送一条消息,并从服务器接收许多响应,可能是无限的。
  • 流媒体服务器非常适合:
  • 当服务器需要发送大量数据(大数据)时
  • 当服务器需要将数据 送到客户端而没有客户端请求更多时(想想实时提要、聊天等)。

第 1 步:设置项目

第一步是安装 protoc gen go 库作为帮助您创建 gRPC 的库,运行以下命令:

 $去安装google.golang.org/protobuf/cmd/protoc-gen-go@v1.26 
$去安装google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.1  

之后,通过运行以下命令更新计算机上的 PATH:

 $ export PATH="$PATH: $(去环境 GOPATH ) /bin"  

第 2 步:创建原始文件

第二步,当然我们会创建proto文件,然后我们先定义request和response的内容,然后别忘了加上service的名字。您可以在下面的代码中看到:

创建质子文件后,我们将使用以下命令将文件生成为 gRPC 文件:

 $ protoc greet/greetpb/greet.proto — go_out=plugins=grpc:.  

当我们运行该命令时,gRPC 文件将自动创建,如下所示:

第 3 步:创建服务器文件

在我们创建质子文件之后,下一步是创建一个服务器文件,我把它放在 greet_server/server.go 文件夹中,这里是服务器的代码:

正如我们在上面看到的,有一个 main 函数作为运行 gRPC 服务器的 主要 函数,此外,还有一个 GreetManyTimes 函数,我们根据原型文件中的服务名称定义。

第 4 步:创建客户端文件

创建文件服务器后,下一步就是创建一个客户端文件,作为客户端,我们将在 greet_client/client.go 文件夹中创建该文件,代码内容如下:

就像文件服务器一样,在这个客户端中,我们还创建了一个 func main ,它对于作为客户端运行很有用,而 func doServerStreaming 对于从服务器调用 func GreetManyTimes很有用。

第 5 步:运行服务器和客户端

在最后一步,我们将尝试运行两个文件,即服务器和客户端,结果将如下图所示:

结论

我们用 gRPC 的概念做了一种 API,当然还有很多类型的 API 我们没有用 gRPC 的概念实现,你可以在我的 GitHub 账号 上看到这篇文章的完整代码,这些都是我的,如果对你有用,别忘了拍手分享这篇文章。

谢谢阅读!

文章来源:智云一二三科技

文章标题:使用 Go (golang) 构建 gRPC:Server Streaming API

文章地址:https://www.zhihuclub.com/86841.shtml

关于作者: 智云科技

热门文章

网站地图