feat(msg): 完整实现 msg 消息服务
包含 channels/preferences/templates/grpc/kafka/outbox/push/redis 等完整实现
This commit is contained in:
@@ -1,14 +1,27 @@
|
||||
import { z } from "zod";
|
||||
|
||||
/**
|
||||
* msg 服务环境变量 schema。
|
||||
*
|
||||
* 仲裁依据:
|
||||
* - G2 /readyz 多依赖检查(DB/ES/Redis/Kafka/PushGateway)
|
||||
* - M2 PushGateway 软失败(PUSH_GATEWAY_URL 可选)
|
||||
* - M4 HTTP POST /internal/push(豁免 gRPC)
|
||||
* - REDIS_URL 可选,未配置时降级到 DB 唯一索引去重
|
||||
*/
|
||||
const envSchema = z.object({
|
||||
PORT: z.string().default("3007"),
|
||||
GRPC_PORT: z.string().default("50056"),
|
||||
DATABASE_URL: z.string().url(),
|
||||
REDIS_URL: z.string().url().optional(),
|
||||
JWT_SECRET: z.string().optional(),
|
||||
JWT_ISSUER: z.string().default("next-edu-cloud"),
|
||||
KAFKA_BROKERS: z.string().default("localhost:9092"),
|
||||
KAFKA_CLIENT_ID: z.string().default("msg-service"),
|
||||
KAFKA_CONSUMER_GROUP_ID: z.string().default("msg-service-group"),
|
||||
ES_URL: z.string().url().optional(),
|
||||
PUSH_GATEWAY_URL: z.string().url().optional(),
|
||||
PUSH_INTERNAL_TOKEN: z.string().optional(),
|
||||
OTEL_EXPORTER_OTLP_ENDPOINT: z.string().url().optional(),
|
||||
LOG_LEVEL: z
|
||||
.enum(["fatal", "error", "warn", "info", "debug", "trace"])
|
||||
|
||||
Reference in New Issue
Block a user