# 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 ## 开发 ```bash 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 密钥 |