diff --git a/README.md b/README.md index 8fde820..f9f4ed2 100644 --- a/README.md +++ b/README.md @@ -66,12 +66,41 @@ kubectl get storageclass | 依赖 | 推荐版本 | 用途 | 需要准备的信息 | | --- | --- | --- | --- | | MongoDB | `7.x` | 主服务业务数据 | 内网地址、端口、用户名、密码、连接参数 | -| Redis | `7.x`,需支持至少 `16` 个逻辑 DB | 队列、缓存、WebSocket 集群状态 | 内网地址、端口、密码,需支持多个逻辑 DB | +| Redis | `7.x`,需支持多个逻辑 DB;默认使用 DB `0`、`6`、`8`、`11`、`12` | 队列、缓存、WebSocket 集群状态 | 内网地址、端口、用户名、密码、可分配的 DB 编号 | | RabbitMQ | 需支持 AMQP `0-9-1`;新建环境建议使用官方当前仍受支持的版本,自建模板默认使用 `4.3.2` | 消息队列 | AMQP 地址、端口、用户名、密码、vhost | | PostgreSQL + pgvector | PostgreSQL `18` + pgvector `0.8.2` | Agent 治理和记忆服务 | 地址、端口、用户名、密码、数据库、扩展 | | RWX 共享存储 | 与 Kubernetes 集群版本兼容的 CSI/存储插件 | 上传、备份、恢复文件共享 | 支持 `ReadWriteMany` 的 StorageClass | | OSS/S3 对象存储 | 兼容 AWS S3 Signature V4 或云厂商 OSS/S3 当前 API,可选 | 文件存储,可选 | Endpoint、Bucket、Access Key | +#### Redis 逻辑 DB 配置 + +Redis 地址、端口和逻辑 DB 编号统一配置在: + +```text +k8s/overlays/production/app-config.yaml +``` + +密码等敏感信息配置在: + +```text +k8s/overlays/production/app-secret.yaml +``` + +当前默认映射如下: + +| DB | 用途 | 配置项 | +| --- | --- | --- | +| `0` | WebSocket 网关集群状态 | `GATEWAY_CLUSTER_REDIS_DB` | +| `6` | 任务队列、画布运行状态和模型限流 | `CONFIG_COMFYUI_QUENE_REDIS_DB` | +| `8` | Agent 服务治理及其队列 | `ASG_REDIS_DB` | +| `11` | 业务缓存和 WebSocket 鉴权缓存 | `CONFIG_COMFYUI_CACHE_REDIS_DB` | +| `12` | 跨实例内部事件 | `CONFIG_EVENT_REDIS_DB` | +| `12` | 任务中止和超时控制 | `CONFIG_ABORT_REDIS_DB` | + +系统实际使用 `0`、`6`、`8`、`11`、`12` 共 5 个不同的逻辑 DB。每个配置项填写的是一个确定的 DB 编号,不是起止范围。客户分配了其他连续或非连续 DB 时,可以逐项修改上述编号;若保持默认值,Redis 必须允许选择到 DB `12`,常见的 `databases 16` 配置可以满足要求。 + +该多 DB 方案要求 Redis 服务支持 `SELECT`。Redis Cluster 只支持 DB `0`,不能直接用于当前配置,详见 Redis 官方 [`SELECT` 文档](https://redis.io/docs/latest/commands/select/)。 + #### MongoDB 数据库、集合和权限 EasyAI 默认使用以下业务数据库: diff --git a/k8s/overlays/local/app-config.yaml b/k8s/overlays/local/app-config.yaml index d132b40..3a78428 100644 --- a/k8s/overlays/local/app-config.yaml +++ b/k8s/overlays/local/app-config.yaml @@ -15,11 +15,18 @@ data: SHARP_CACHE_ENABLED: "false" SHARP_CONCURRENCY: "1" + # EasyAI 主服务 Redis 连接;各业务用途通过独立逻辑 DB 隔离。 CONFIG_COMFYUI_QUENE_REDIS_HOST: redis CONFIG_COMFYUI_QUENE_REDIS_PORT: "6379" CONFIG_COMFYUI_QUENE_REDIS_USERNAME: "" + # 任务队列、画布运行状态和模型限流 CONFIG_COMFYUI_QUENE_REDIS_DB: "6" + # 业务缓存和 WebSocket 鉴权缓存 CONFIG_COMFYUI_CACHE_REDIS_DB: "11" + # 跨实例内部事件 + CONFIG_EVENT_REDIS_DB: "12" + # 任务中止和超时控制;与内部事件共用 DB 12 + CONFIG_ABORT_REDIS_DB: "12" LOG_LEVEL: log,error,warn,debug WS_GATEWAY_LOG_LEVEL: log,error,warn @@ -43,6 +50,7 @@ data: GATEWAY_CLUSTER_REDIS_HOST: redis GATEWAY_CLUSTER_REDIS_PORT: "6379" GATEWAY_CLUSTER_REDIS_USERNAME: "" + # WebSocket 网关集群状态 GATEWAY_CLUSTER_REDIS_DB: "0" WS_GATEWAY_TCP_EVENT_PATTERN: gateway.event.publish WS_GATEWAY_TCP_TIMEOUT_MS: "1500" @@ -56,6 +64,7 @@ data: ASG_REDIS_HOST: redis ASG_REDIS_PORT: "6379" + # Agent 服务治理及其队列 ASG_REDIS_DB: "8" ASG_PORT: "3003" ASG_TCP_HOST: 0.0.0.0 diff --git a/k8s/overlays/production/app-config.yaml b/k8s/overlays/production/app-config.yaml index 459ecfe..3e57429 100644 --- a/k8s/overlays/production/app-config.yaml +++ b/k8s/overlays/production/app-config.yaml @@ -15,11 +15,18 @@ data: SHARP_CACHE_ENABLED: "false" SHARP_CONCURRENCY: "1" + # EasyAI 主服务 Redis 连接;各业务用途通过独立逻辑 DB 隔离。 CONFIG_COMFYUI_QUENE_REDIS_HOST: CHANGE_ME_REDIS_HOST CONFIG_COMFYUI_QUENE_REDIS_PORT: "6379" CONFIG_COMFYUI_QUENE_REDIS_USERNAME: "" + # 任务队列、画布运行状态和模型限流 CONFIG_COMFYUI_QUENE_REDIS_DB: "6" + # 业务缓存和 WebSocket 鉴权缓存 CONFIG_COMFYUI_CACHE_REDIS_DB: "11" + # 跨实例内部事件 + CONFIG_EVENT_REDIS_DB: "12" + # 任务中止和超时控制;与内部事件共用 DB 12 + CONFIG_ABORT_REDIS_DB: "12" LOG_LEVEL: log,error,warn WS_GATEWAY_LOG_LEVEL: log,error,warn @@ -43,6 +50,7 @@ data: GATEWAY_CLUSTER_REDIS_HOST: CHANGE_ME_REDIS_HOST GATEWAY_CLUSTER_REDIS_PORT: "6379" GATEWAY_CLUSTER_REDIS_USERNAME: "" + # WebSocket 网关集群状态 GATEWAY_CLUSTER_REDIS_DB: "0" WS_GATEWAY_TCP_EVENT_PATTERN: gateway.event.publish WS_GATEWAY_TCP_TIMEOUT_MS: "1500" @@ -56,6 +64,7 @@ data: ASG_REDIS_HOST: CHANGE_ME_REDIS_HOST ASG_REDIS_PORT: "6379" + # Agent 服务治理及其队列 ASG_REDIS_DB: "8" ASG_PORT: "3003" ASG_TCP_HOST: 0.0.0.0