AI Agent Deep Dive
首页 GitHub 分析
AI·Agent·Dify

Dify 生产部署指南 — Docker Compose × K8s × 高可用配置详解

Dify 采用微服务架构,后端 Python Flask + Celery,前端 Svelte,依赖 PostgreSQL、Redis 和向量数据库。生产部署需要合理配置各组件的高可用和扩展策略。本文从 Docker Compose 单机到 Kubernetes 集群,覆盖完整的生产部署流程。

一、架构概览

Dify 各组件关系:Web 服务(Flask + Gunicorn)处理 API 请求 → Celery Worker 处理 LLM 调用等异步任务 → PostgreSQL 存储结构化数据 → Redis 消息队列和缓存 → 向量数据库(Qdrant/Weaviate)。各组件独立部署,通过环境变量配置连接。

二、Docker Compose 部署

官方提供 docker/docker-compose.yaml,包含 api、worker、web、db、redis、vector-store 六个服务。生产环境需调整:加大 api 容器数(replicas: 3)、配置持久化存储(volumes 映射到宿主机)、开启日志轮转(logging 配置)。

广告Google AdSense 中间

三、Kubernetes 集群部署

K8s 部署建议:命名空间隔离namespace: dify)、HPA 弹性伸缩(api 和 worker 基于 CPU 和内存)、Ingress + TLS(使用 cert-manager 自动签发 SSL)、PV/PVC 持久化(PostgreSQL 和向量数据库使用云盘)。

四、环境配置与优化

关键环境变量:SECRET_KEY(JWT 加密)、DB_PASSWORD(PostgreSQL)、REDIS_PASSWORDSTORAGE_TYPE(s3/local)、LOG_LEVEL(WARN)。性能优化:Gunicorn worker 数 = 2×CPU 核数,Celery concurrency = CPU 核数,PostgreSQL max_connections = 100。

五、数据库与缓存优化

PostgreSQL 优化:开启 pg_trgm 扩展加速模糊搜索,配置 work_mem=64MBshared_buffers=4GB、定期 VACUUMANALYZE。Redis 配置:maxmemory=4GBmaxmemory-policy=allkeys-lruappendonly=yes

六、监控与运维

推荐监控栈:Prometheus + Grafana 采集 API 延迟(p50/p95/p99)、Worker 队列深度、数据库连接数。ELK/Loki 集中日志。Alertmanager 告警规则:API 错误率 > 5%、Worker 队列积压 > 1000、PG 连接数 > 80。健康检查端点:/health 返回所有服务状态。

广告Google AdSense 末尾
代码
点击「查看代码」展示源码
广告Google AdSense
Dify ·v0.12 ·68K⭐ ·Docker Compose / K8s ·PostgreSQL + Redis