本章将编写两个简单的 gRPC 服务,以便让它们通过 Consul 进行服务注册与发现。
服务介绍
Echo
:回显客户端发送过来的消息Calculate
:简单的加减乘除计算服务
proto
echo.proto
syntax = "proto3";
package pb;
message EchoRequest { string message = 1; }
message EchoResponse {
optional string prefix = 1;
string message = 2;
}
service EchoSerivce { rpc Echo(EchoRequest) returns (EchoResponse); }
calculate.proto
Rust 项目结构
本专题将以上两个 proto 分别拆分成 srv 和 web,为了简化操作,每个服务都通过 Cargo.toml
的 [[bin]]
来指定:
echo-srv
:Echo 的 gRPC 服务echo-web
:Echo 的 Web 服务,调用echo-srv
calc-srv
:Calculate 的 gPRC 服务calc-web
:Calculate 的 Web 服务,调用calc-srv
对应的 Cargo.toml
定义:
[[bin]]
name = "echo-srv"
path = "src/echo-srv.rs"
[[bin]]
name = "calc-srv"
path = "src/calc-srv.rs"
[[bin]]
name = "echo-web"
path = "src/echo-web.rs"
[[bin]]
name = "calc-web"
源码
由于代码非常简单,请自行在源码仓库查看。