域名 AXUM.RS 将于2025年10月到期。我们无意再对其进行续费,我们希望你能够接续这个域名,让更多 AXUM 开发者继续受益。
  • 方案1️⃣AXUM.RS 域名 = 3000
  • 方案2️⃣方案1️⃣ + 本站所有专题原始 Markdown 文档 = 5000
  • 方案3️⃣方案2️⃣ + 本站原始数据库 = 5500
如果你有意接续这份 AXUM 情怀,请与我们取得联系。
说明:
  1. 如果有人购买 AXUM.RS 域名(方案1️⃣),或者该域名到期,本站将启用新的免费域名继续提供服务。
  2. 如果有人购买了 AXUM.RS 域名,且同时购买了内容和/或数据库(方案2️⃣/方案3️⃣),本站将关闭。届时我们或许会以另一种方式与你再相遇。

实现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

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

源码

要查看完整内容,请先登录