内容介绍
本专题将通过 Consul 来实现微服务的服务注册与发现。实现gRPC服务
本章将编写两个简单的 gRPC 服务,以便让它们通过 Consul 进行服务注册与发现。consul服务注册与发现
本章将讨论 Consul 的安装、部署、API操作以及实现一个简单的 Rust 集成 Consul API。代码集成及服务自动注册与发现
本章将在上一章的基础上,将 `consul_api` 集成到我们的 gPRC 和 web 服务中,实现服务的自动注册和自动发现。【实战】使用 Hax 的免费 VPS 进行 Consul 集群部署
本章通过 Hax 和 Woiden 的免费 VPS 对 Consul 集群部署进行实战。
实现gRPC服务
本章将编写两个简单的 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
syntax = "proto3";
package pb;
message CalculateRequest {
int32 x = 1;
int32 y = 2;
}
message CalculateRespone { int32 result = 1; }
service CalculateService {
rpc Addition(CalculateRequest) returns (CalculateRespone);
rpc Subtraction(CalculateRequest) returns (CalculateRespone);
rpc Multiplication(CalculateRequest) returns (CalculateRespone);
rpc Division(CalculateRequest) returns (CalculateRespone);
}
Rust 项目结构
本专题将以上两个 proto 分别拆分成 srv 和 web,为了简化操作,每个服务都通过 Cargo.toml
的 [[bin]]
来指定:
对应的 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"