用途:在 NestJS 中实现微服务,通过 transporter 与 @MessagePattern / @EventPattern 组织服务间通信,常见形态是 HTTP + 消息总线的混合应用。
主要能力:支持 NATS、Kafka、RabbitMQ、Redis、TCP、gRPC 等 transporter;HTTP 边界用 REST/GraphQL 控制器;配置使用 @nestjs/config 加 Joi/Zod 校验;ORM 可选 Prisma/TypeORM/Drizzle,每个服务一个 schema。
使用方式:混合应用先 NestFactory.create,再 connectMicroservice 指定 transport 与 options,随后 startAllMicroservices 与 listen;客户端用 ClientsModule.register 注册,注入 @Inject('ORDERS') client: ClientProxy,通过 send/emit 调用。@MessagePattern 用于请求/响应,@EventPattern 用于发后不理与扇出。
规则与限制:HTTP 与消息 payload 都要 ValidationPipe(whitelist);授权在数据所属服务内完成,JWT/守卫放在 HTTP 边界;ClientProxy 需显式超时与重试;消费者要幂等;配置在启动时校验,密钥不入代码;禁止跨服务直连他人数据库。事件可靠性用 outbox 表加发布器,消费者用 inbox/去重键;迁移放在各服务流水线。可观测性包括 correlation id 日志拦截器、可选 OpenTelemetry、@nestjs/terminus 健康检查。测试上单元测试 mock client,e2e 用内存/TCP transporter。避免单一“微服务”泥球、关键写入无 outbox 的 emit、只在网关做守卫、payload 用 any、在处理器中阻塞事件循环。
资料未提供具体安装命令、版本要求与收费信息。