GRPC通信模式

在我们日常的客户端和服务端的通信中,往往是简单的请求-响应风格的通信,这里一个请求会得到一个响应。借助gRPC,我们可以实现不同的进程间通信模式。 接下来就由我来介绍 gRPC的4种通信模式:一元 RPC, 服务端流式 RPC, 客户端流式 RPC, 客户端流式 RPC(双向流式),并会带有一些简单的例子展示各种模式,在这里客户端和服务端都由 go 编写。 一元 RPC 我们先来介绍一元 RPC,这是一种单向通信,客户端调用服务端的远程方法时,客户端发送请求至服务端并获得一个响应。 假设我们现在需要构建一个商城系统,商城系统有一个订单服务,提供了根据订单号查询订单的功能。 下面来实现这个功能,先使用 protocol buffer 来定义服务,然后再使用 gRPC 实现一元 RPC。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 syntax = "proto3"; import "google/protobuf/wrappers.proto"; service OrderManagement { rpc getOrder(google.protobuf.StringValue) returns (Order) {} } message Order{ string id = 1; string desc = 2; float price = 3; string destination = 4; repeated string items = 5; } 接下来编写相应的服务端实现代码:...

December 4, 2021 · 3 min · overstarry