服务通信
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 | 订单对账差异 |