服务通信

Request-Reply(服务 ↔ 服务)

  • api_service 调业务服务、业务服务互调,一律走 NATS request-reply;内部服务间直接 HTTP/REST 调用被禁止。
  • subject 命名 <服务前缀>.<资源>.<动作>,如 identity.user.register、payment.order.get。
  • 回复报文复用统一信封 {id, code, messages, result};超时、无响应等属于传输层失败,不携带业务 code。

JetStream 事件流(service → worker)

  • 工作只经 NATS 流到达 worker:服务发布、worker 消费;此方向 request-reply 被禁止。
  • worker 消费事件后自行落库(例如 otp_worker 将投递结果写入 OTP 库)。
  • 定时任务(清理、扫描)由 worker 直接读写所属服务的数据库,不经 NATS。

事件清单

subject 方向 说明
otp.send.requested otp_service → otp_worker OTP 投递任务
audit.event.published 各服务 → audit_service 审计事件汇入
payment.order.paid payment_service → 业务服务 支付结果通知(收单方 → 各服务)
payment.subscription.renewal.due payment_worker → payment_service 订阅续订到期
payment.order.reconcile.diff payment_worker → payment_service 订单对账差异