gRPC-四种模式实践
本文介绍如何使用 gRPC 的四种模式
gRPC 共有四种模式:简单模式、服务端流模式、客户端流模式、双向流模式。
在开始之前,我们首先新建proto/hello.proto文件
|
|
在此之前我们还要下载 go 的依赖
在项目中
|
|
此外还要安装protoc安装完成之后,在项目根目录执行
|
|
在 proto 文件下就会有hello.pb.go生成。
简单模式
类似于普通的 http 请求,客户端请求 request 服务端进行响应 response。
我说一句话你说一句话。
我们首先实现客户端。client/main.go
|
|
实现服务端server/server/hello_service.go
|
|
实现服务端server/main.go
|
|
我们分别启动服务端和客户端。
在server/目录
|
|
在client/目录
|
|
现在我们就实现了一个简单的一元服务。
服务端流模式
客户端发送一个 request,服务端的是一个响应流。
我说一句话,你说一大堆。
client.go中括号以外的内容都能复用。
|
|
实现func (server *HelloServer) HelloUnary2Stream(req *abc.LoginRequest, stream abc.HelloService_HelloUnary2StreamServer) error方法
|
|
服务端
|
|
客户端
|
|
客户端流模式
客户端发送流,服务端只是一个响应。
我说了一大堆,你回了一句话。
client.go
|
|
server.go
|
|
服务端
|
|
客户端
|
|
双向流模式。
两个都不断在向对方发送流。
两个人都在不断说话。可能是你说一句我回 0-N 句,我说一句你回 0-N。
client.go
|
|
server.go
|
|
服务端
|
|
客户端
|
|