用途:为 NestJS 微服务提供传输层与契约规范,覆盖 gRPC 同步调用、RabbitMQ/Kafka 异步事件,以及 monorepo 中的共享契约管理。
主要能力:同步 RPC 场景建议用 gRPC 做低延迟的内部服务间调用;异步场景用 RabbitMQ 或 Kafka 通过 emit() 实现领域解耦的 fire-and-forget 事件。契约方面要求把所有 DTO、.proto 文件和接口集中放在 libs/contracts,服务之间不得互相导入,只能从 contracts 导入;消息必须做语义化版本管理,禁止修改已有字段类型,只能新增字段。异常处理上,标准 HttpException 在 RPC/TCP 传输中会丢失,需改用 RpcException 并配合全局过滤器。序列化方面,在 MicroserviceOptions 中应用 useGlobalPipes(new ValidationPipe({ transform: true })),而非在 HTTP 层。
使用方式:资料给出 gRPC 与 RabbitMQ 的设置章节,但具体实现示例未在资料中提供,需参考原文。
适用场景:NestJS 微服务架构中需要服务间通信、事件驱动解耦、跨服务共享类型契约的项目。
限制与反模式:禁止跨服务导入(只能从 libs/contracts 导入);RPC 中禁止使用 HttpException,应使用 RpcException 与全局 RpcExceptionFilter;禁止无版本的消息 schema,不得更改已有字段类型,否则会破坏消费方。资料未提供具体代码示例、安装命令、收费或平台信息。