SuperAPI AI 工具集

rust-microservices

编程与开发

查看项目

更新于 10-15 20:31

技能介绍

用途:在创建或审查 Rust 微服务时提供架构与实现规范,覆盖 HTTP、gRPC、异步消息、可观测性与部署。

主要能力:每个 bounded context 一个二进制,使用 Tokio 异步与类型化错误;HTTP 用 axum,内部 gRPC 用 tonic;消息队列可用 rdkafka、NATS、SQS;数据库用 sqlx 或 sea-orm,且每个服务独立 DB;可观测性用 tracing + otel + metrics。

使用方式:采用 Cargo workspace,服务目录含 main.rs、可测试的 lib.rs(app())、config.rs、http/ 或 grpc/、app/、domain/、adapters/、migrations/ 与 Dockerfile;多服务时用 crates/contracts 管理版本化 proto/DTO。规则包括:异步函数返回 Result<T, AppError>,边界不用 unwrap;客户端设置超时(tower::timeout、reqwest、tonic deadlines);消费者与关键 POST 幂等;提供 /health 与 /ready 及优雅关闭;启动时类型化配置并 fail-fast;服务间不共享写库;spawn 任务类型 Send 且不阻塞运行时。同步通信使用 serde DTO、版本化 proto、正确状态码与 deadline,Tower 层做 trace、并发限制与必要时的 load shed,仅对幂等操作重试并加退避与抖动。异步消息采用 DB 写入 + outbox(同一事务)→ dispatcher → broker → consumer(inbox),持久化后 ack,毒消息进 DLQ,payload 版本化,消费端限制并发。弹性方面使用 CancellationToken/broadcast 关闭后台任务、关键依赖加 circuit breaker、跟踪 JoinHandle 并在关闭时 abort、DB 连接池按副本数设置。可观测性要求 tracing 带 service.name 与 request/message id,传播 W3C tracecontext,采集 HTTP、consumer lag 与错误指标。测试用 rust-unit-testing 覆盖领域与 Router::oneshot,集成测试用 testcontainers 或本地 broker,跨服务端口用 fake。

适用场景:Rust 微服务的搭建、评审与生产化。

限制:资料未提供具体安装命令、收费、价格与平台信息;反模式包括无部署边界的链接式单体、consumer 循环中 unwrap、SIGTERM 时忘记取消任务、克隆重型 AppState、事件耦合内部结构而无稳定 DTO。