gRPC网关
本指南有助于将grpc网关与go-micro服务结合使用。
grpc-gateway是protoc的插件。它读取gRPC服务定义,并生成将RESTful JSON API转换为gRPC的反向代理服务器。
我们使用go-grpc编写后端服务。Go-GRPC是围绕go-micro和用于客户端和服务器的grpc插件的简单包装。当调用grpc.NewService时,它返回一个micro.Service。
code
在examples/grpc找到示例代码。
前提
这些是一些先决条件
安装protobuf
mkdir tmp
cd tmp
git clone https://github.com/google/protobuf
cd protobuf
./autogen.sh
./configure
make
make check
sudo make install安装插件
Greeter服务
在这个例子中,我们使用go-grpc创建了一个Greeter的微服务。 这项服务非常简单。
原型如下:
服务如下:
GRPC网关
grpc网关使用与服务相同的协议,并增加一个http选项
proto使用以下命令生成grpc stub和反向代理
我们使用下面的代码创建了greeter服务的示例api。将写入类似的代码来注册其他端点。请注意,网关需要greeter服务的端口地址。
运行示例
运行greeter服务。指定mdns,因为我们不需要发现。
运行网关。它将默认为端点localhost:9090的greeter服务。
使用curl在(localhost:8080)网关上发起请求。
限制
grpc网关的例子需要提供服务地址,而我们自己的micro api使用服务发现,动态路由和负载均衡。这使得grpc网关的集成性稍差一些。
访问github.com/micro/micro了解更多信息
Last updated
Was this helpful?