- known-issues.md: 追加 9 条 P6 工作经验日志,更新 arch-scan 经验 - post-p6-followup.md: 新增 P6 后续工作手册 runbook - iam/core-edu/content/msg README: 补充健康检查端点说明
Msg 消息通知服务
版本:0.1(P5 骨架) 端口:3007
职责
消息通知限界上下文,管理通知的多渠道分发(站内信、邮件、短信、推送)。 消费 Kafka 事件,写入 MySQL + Elasticsearch,调用 Push Gateway 实时推送。
技术栈
- NestJS 10 + TypeScript 5
- Drizzle ORM + MySQL 8
- Elasticsearch 8(全文检索)
- Kafka(事件消费,骨架)
- pino + prom-client + OpenTelemetry
开发
pnpm install
pnpm dev # http://localhost:3007
API
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /notifications | 发送通知 |
| GET | /notifications | 查询用户通知列表 |
| POST | /notifications/:id/read | 标记已读 |
| GET | /notifications/search?q= | 全文检索通知 |
健康检查
| 端点 | 用途 | 鉴权 |
|---|---|---|
GET /healthz |
存活探针(liveness),仅返回进程状态,不检查依赖 | 无 |
GET /readyz |
就绪探针(readiness),检查 DB 连接,失败返回 503 | 无 |
实现见 src/shared/health/health.controller.ts,5 个 NestJS 服务(iam/core-edu/content/msg/classes)一致。
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
| PORT | 3007 | 服务端口 |
| DATABASE_URL | - | MySQL 连接串 |
| KAFKA_BROKERS | localhost:9092 | Kafka broker 列表 |
| ES_URL | http://localhost:9200 | Elasticsearch 地址 |
| JWT_SECRET | - | JWT 密钥 |