Dify 性能瓶颈?Higress AI 网关为它注入「高可用之魂」!
Higress AI 网关是外界与企业 AI 应用、企业 AI 应用与大语言模型服务和 MCP 服务的桥梁,旨在解决模型集成复杂、安全合规难、管理效率低等挑战,提供统一治理入口。1. 协议标准化:将差异化的模型 API 统一转换为 OpenAI 兼容格式2. 可观测体系:提供 Token 级监控(QPS / 成功率 / 耗时)和请求全链路追踪3. 安全防护层:实现 API-KEY 自动轮转、JWT
Dify 应用性能问题
对于一个对外提供服务的 Dify AI 应用,能够正常运行的核心基础依赖包括:Dify 系统组件、模型服务、MCP 服务、向量库与记忆库等。其中更容易达到性能瓶颈的节点在于 Dify 系统组件和模型服务。
- Dify 系统组件
在高并发场景下,Dify 系统组件很容易达到 CPU 性能瓶颈。在内部某生产实践中,在 Dify 所有服务端组件规格为 4C8G 单实例的情况下,对仅 10 节点的 Dify 工作流应用进行压测,约 10qps 便把 CPU 使用率打满,导致 Dify 应用和 Dify 管理端均不可用。
Dify 系统组件的性能问题,究其原因,主要和 Dify 本身的实现架构和逻辑有关,主要的影响因素包括:
- 工作流引擎实现。一套 Dify 系统上构建的多个 Dify 应用,底层执行逻辑全部共用同一套工作流引擎,工作流引擎除了串联并完成用户自定义的流程,还会额外进行状态流转管理、频繁数据读写、观测数据生成与存储等过程,这些逻辑本身占用了较高的计算资源,导致即使是简单的逻辑,由于这些额外但必要的的执行逻辑存在,也会带来一定的资源消耗。
- 运行链路长。以 Dify 应用中调用大模型为例,工作流引擎运行在 api 组件中,需要调用模型时,会调用 deamon-plugin 组件,由 deamon-plugin 执行真正的模型调用,并返回结果给到 api。由于当前版本 Dify 实现了插件化改造,大部分的节点或工具,都以插件的形式存在,导致一个工作流会频繁出现多次组件间调用。
- Python 语言实现。Dify 系统的核心服务端组件 api 由 Python 语言实现,和 C++、Golang、Rust 等语言相比,Python 语言本身的性能表现相对较差。
从上述分析中看出,如果我们希望提升 Dify 系统组件的性能,需要在源码侧持续优化,中短期来看,难以取得较大的性能提升。
- 模型服务
对于自建模型服务的场景,由于模型推理过程本身对 GPU 算力和显存有较高消耗,在 Dify 应用依赖到自建模型的场景,在高并发情况下,也会出现因为模型服务资源打满导致应用请求耗时翻倍、卡住卡死的情况,除了严重影响用户使用体验,也容易由于模型服务不可用导致 Dify 系统本身崩溃。
由于目前国内市场的状况依然是一卡难求,通过扩大 GPU 资源来支持更高的并发来提升吞吐能力,意味着大量的财力消耗,这其中的性价比可能需要谨慎评估。
针对上述问题,在 Dify 系统组件性能中短期不会显著提升,GPU 资源短期内不计划扩容的情况下,面对突发或并发的 Dify 应用请求时,面向 Dify 应用的高可用治理,在生产级场景下便显得尤为重要。
AI 网关高可用方案
AI 网关简介
Higress AI 网关是外界与企业 AI 应用、企业 AI 应用与大语言模型服务和 MCP 服务的桥梁,旨在解决模型集成复杂、安全合规难、管理效率低等挑战,提供统一治理入口。具备以下核心特性:
1. 协议标准化:将差异化的模型 API 统一转换为 OpenAI 兼容格式
2. 可观测体系:提供 Token 级监控(QPS / 成功率 / 耗时)和请求全链路追踪
3. 安全防护层:实现 API-KEY 自动轮转、JWT 认证、敏感内容实时拦截
4. 稳定性引擎:集成多级 Fallback、AI 缓存、Token 限流等治理能力
AI 网关通过通过简化集成、统一治理、强化安全和加速响应,企业在利用 AI 技术创新过程中将更加高效、安全、稳定。
AI 网关高可用能力
AI 网关提供了一整套专为 AI 应用与模型设计的高可用性保障能力,确保应用与模型服务的稳定与可靠:
- 多维度请求限流:支持针对应用、模型等服务,按多时间尺度(秒、分、时)对请求量进行精细化控制,有效防止突发和高并发流量冲垮应用和模型服务,保障系统稳定性。
- Token 级资源流控:除请求量外,提供基于 Token 消耗量的限流能力,更精准地控制大模型资源使用,避免因个别 "大请求" 耗尽资源池而影响其他用户,实现更公平的资源调度。
- 模型 Fallback:当主模型服务出现故障或响应异常时,网关能够自动、透明地将请求切换到预设的备用模型服务,保证核心业务不中断,实现服务故障的秒级容灾。
- 模型负载均衡:针对自建模型集群,提供包括 GPU 感知、前缀匹配在内的多种智能负载均衡策略,能够在不增加硬件成本的前提下,显著提升系统吞吐能力、降低响应延迟,最大化 GPU 资源利用率。
- AI 缓存:对高频、重复的请求结果进行缓存,直接从网关返回响应,大幅降低对底层大模型的调用频次,不仅能显著提升响应速度,还能有效节约模型调用成本。
AI 网关代理 Dify 应用出入流量
使用 Higress AI 网关提高 Dify 应用的高可用性,需要将 AI 网关和 Dify 系统整合,我们提供的整合方案如下图所示。在原架构下,Dify 内置的 Nginx 作为反向代理代理入流量,Dify 直接调用大模型、RAG 服务、Mcp Server 等;新架构下,AI 网关替换 Dify 内置 Nginx,作为 Dify 应用出入流量的代理。

在入流量代理处,我们推荐将 AI 网关替代 Nginx,而不是将 AI 网关路由到 Nginx,理由如下:
- 能力全覆盖:AI 网关已完整覆盖 Nginx 代理能力,并额外提供 20+ AI 专属治理策略,Nginx 默认缓冲机制会破坏 SSE 流式传输,需手动调整复杂参数,且缺乏深度可观测性支持。
- 架构精简化:入口流量经 AI 网关直连 Dify 服务,消除冗余网关层。双网关架构(AI 网关→Nginx→Dify)不仅增加额外网络跃点导致性能损耗,问题定位更需增加 Nginx 异常排查环节,降低故障定位效率。
- 运维成本优化:Nginx 实例需独立部署并占用额外计算 / 内存资源,且需人工维护扩缩容。路由配置变更需同步维护两套系统,配置不一致风险显著增加。相较之下,AI 网关托管部署提供企业级 SLA 保障,原生集成监控告警体系,维护成本更低。
实操指南与能力效果
AI 网关流量代理配置
Dify 应用入流量代理
AI 网关支持创建 Agent API,代理访问 AI 应用,并针对访问 AI 应用的流量提供观测、安全、高可用治理等能力。本文将选取高可用治理能力进行重点介绍。
创建服务来源
在 AI 网关为 Dify 的 api 组件创建服务来源。如果您的 Dify 部署在 SAE 或者 ACK 上,可以参考以下方式创建服务。
- SAE(通过 SAE 或计算巢 Dify 社区版 - Serverless 部署)
在服务 - 服务 - 创建服务处添加部署 Dify 的 SAE 命名空间下的 dify-api-{namespace} 应用。


- ACK(通过 ACK Helm 或计算巢 Dify 社区版 - 高可用版部署)
在服务 - 来源 - 创建来源处创建容器来源后,在服务 - 服务 - 创建服务处添加对应容器服务中 dify-system 命名空间下的 ack-dify-api。


配置路由
接下来,在 AI 网关上通过 Agent API 的方式为 Dify 服务配置路由。步骤如下:
- 创建 Agent API。点击 Agent API 创建 Agent API,其中域名和 Base Path 可以根据实际情况配置,用于通过域名访问 Dify 并且避免和其他服务的路径冲突,勾选转发至后端服务时移除,协议选择 Dify。

- 创建路由。在 Agent API 处点击上述步骤创建的 API,点击创建路由,如果您的 Dify 存在 workflow 应用,路径选择 /v1/workflows/run,如果您的 Dify 存在 agent 应用,路径选择 /v1/chat-messages,服务选择上述步骤创建的 api 服务。
如果您希望一条路由对应一个 Dify 应用,可以在更多匹配规则中,设置请求头和请求参数匹配,如设置 header-key=app-id,需要注意您在通过 AI 网关访问 Dify 应用时,需自主携带对应的匹配内容。


- 应用访问验证。使用上述步骤配置的域名 + Path 访问 Dify 应用,能够正常调用则说明入流量代理配置成功。

Dify 应用模型出流量代理
AI 网关支持创建 LLM API 代理访问大模型,支持创建 Mcp Server 实现 Mcp 代理,支持通过使用 RAG 插件实现 Rag 检索代理,并针对不同类型的流量提供丰富的观测、安全、高可用治理等能力。
由于访问大模型是 AI 应用最核心场景,本节将主要重点介绍 AI 网关代理大模型流量的操作方式,以及相应的高可用治理能力。
-
AI 网关控制台创建 LLM API,用于访问自建或三方大模型,参考管理 LLM API【1】。
-
前往 Dify 应用市场,安装插件 OpenAI-API-compatible。

- 在 Dify 控制台,在右上角点击设置 - 模型供应商,为 OpenAI-API-compatible 添加模型,以 LLM 模型为例,其中模型类型、模型名称和 API Endpoint URL 为必填,API Endpoint URL 为步骤 1 在 AI 网关创建的 LLM API 的域名 + 前缀,其他参数可按需配置,点击保存。

- 在应用中需要选择模型的节点,选择步骤 3 已创建的模型即可。

- 在 Dify 中运行 Workflow 或 Agent,验证通过 AI 网关代理访问 LLM 能正常返回结果,说明大模型出流量代理配置生效。

Dify 应用入流量治理
以 AI 网关作为 Dify 应用流量入口,可以在 AI 网关上通过配置集群限流,进行全局级、应用级等多维度流量控制。本节将以应用级限流为例进行简单介绍和演示。
为了实现全局级和应用级限流,需要额外引入 Redis 实例进行计数,在 Dify 系统的存储组成中,Redis 是必要组件之一,因此可以刚好复用 Dify 系统的 Redis。
在 AI 网关中完成 Redis 应用创建之后,在插件市场中使用基于 Key 集群限流插件,通过配置插件规则,即可实现针对不同 Dify 应用的限流策略。基于集群限流插件的详细使用方式见基于 Key 集群限流【2】。
以下图为例,假设对某 Dify 应用设置 1 分钟只允许通过一次的请求。

更多推荐



所有评论(0)