掘金 人工智能 06月09日 19:08
使用扣子与Dify的业务风险
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文探讨了在使用扣子和Dify这类工作流平台构建业务时,可能面临的性能瓶颈问题。作者通过实际测试,对比了扣子、Dify与n8n、ApiFlow在处理数据量增加时的性能表现,发现扣子和Dify在数据量增大时容易出现性能下降甚至服务中断。文章建议,在业务发展初期可以使用扣子和Dify进行快速试错,但随着业务增长,应考虑平台的可扩展性和自主可控性,以避免因性能问题影响业务发展。

⏱️ 扣子与Dify的性能测试:作者使用扣子和Dify构建了一个求质数的工作流,发现在处理小数据量时表现尚可,但当数据量增加到1000时,性能明显下降,甚至出现错误提示,表明其在处理大数据量时存在性能瓶颈。

💡 n8n的测试结果:作者使用相同逻辑在n8n上进行了测试。在小数据量情况下,n8n表现较好,但随着并发的增加,免费版的n8n也出现了性能问题。这说明即使是更强大的平台,在没有升级到付费版的情况下,也可能受到限制。

🚀 ApiFlow的卓越表现:作者介绍了自己开发的工作流编排系统ApiFlow,该系统在相同测试中表现出色,即使在处理更大的数据量和高并发的情况下,也能保持极高的性能和稳定性。这得益于其基于Groovy语言构建的DSL,以及对JVM的充分利用。

⚠️ 业务发展带来的风险:文章强调,使用扣子和Dify进行业务初期试错是可行的,但随着业务的增长,需要关注平台的性能瓶颈和自主可控性,以避免因平台限制而影响业务发展。

使用扣子与Dify的业务风险

如果你正在使用扣子和Dify构建你的业务, 有一个风险你必须关注。不是你的数据全在线上不安全,也不是将来费用太高,这些都是可以解决的问题。

而是当你的业务发展起来,数据量稍微增多时,性能就会下降很明显,甚至跑不动直接拒绝服务

扣子性能测试

我用扣子构建了一个求质数的工作流,逻辑是指定一个数字,求出该数字以下的所有质数,逻辑如下图:

注:上述逻辑可以用一个脚本实现,但为了体现平台的多节点能力,特意拆分为 3 个步骤。

首先使用100来测试该流程,结果扣子用了11.23秒。

当我继续把数字增大到1000时 问题出现了,经过10秒的挣扎然后报错了:

错误提示大意是节点数量过多,要我去优化节点,可实际节点就是只有6个,只是循环执行了1000次而已。

 {     "code": 6016,     "debug_url": "https://www.coze.cn/work_flow?execute_id=7513813302357016610&space_id=7411328210694455348&workflow_id=7513465459611680777&execute_mode=2",     "msg": "Workflow node execution limit exceeded: The number of executed nodes in the workflow has surpassed the allowed maximum. Please review and optimize your workflow to reduce the number of nodes." }

Dify性能测试

我用同样的逻辑在Dify 上进行测试了,几乎得到了一样的结果:

先测试100的情况:

在测试1000时又报错了

现在动不动就是上亿的数字,1千、1万的数据量真是太常见了,所以你的业务要是基于这两套系统构建的一定要注意其中的风险。

规避风险最好的方式是就有更好选择,不受制于某一家的系统,这里推荐一个不错的工作流编排n8n ,试了一下 效果会好很多。

n8n的性能测试

使用n8n构建了一套一样的求质数流程

测试数字100 执行时间只要175毫秒,总算是一个正常的结果

说明一下,这里n8n是部署在我的本地,但我想这并不是关键问题因为这个测试中 Dify和扣子的 io传输与计算量都不大。

继续把数字提高到1000 看n8n的性能

加大到1000以后 时间要6秒开始不尽人意了。但这不是最致命的问题,最大问题是当你用户起来 有一定的并发的时候 n8n就会 力不从心了

使用jmeter 构建了一100个线程 同时发起调用,但这完全多佘了因为并发不到6/秒

而此时cpu已经飙到120%了,但并发始终上不去,而且出现了大量的错误。

这种情况其实也能理解,毕竟我使用的是免费版,如果用付费的企业版应该能解决这个问题,毕竟n8n还是以营利为目的。但这同样有受制于人的风险。

这时还有一个选择供大家参考,就是我最近一直在做的工作流编排系统。

ApiFlow 工作流编排

这是大叔做的编排系统,同样的逻辑看看性能情况:

直接测试1000

结果只要28毫秒,这看上去像走了本地缓存一样,其实这28毫秒大部都是http网络传输用掉的,真正的流程执行时间是1毫秒都不需要。

因为我我底层的DSL设计 是基于Groovy语言构建的,类似Gradle或jenkins中的DSL,执行前DSL会被编译成Class 且编译一次,所以它的执行性能接近java原生语言,可充分利用jvm 的JIT热点缓存技术 。

/*构建时间:2025-6-8 14:38:47*///生成数组eval_1 = EVAL {0..input.count.toLong()}// 数据遍历迭代each_1 = EACH {from eval_1.result//转换质数  map {     def num=it    def res=true;     if (num <= 1) {        res=false;      }else if (num == 2) {        res=true;      }else {        for (int i = 2; i < num; i++) {         if (num%i == 0) {            res=false;             break;         }        }      }    [prime:res,num:it]  }//判断质数  filter {     it.prime}list()}//返回总数eval_2 = EVAL {each_1.result.size()}start {run eval_1run each_1run eval_2}

现在我们把数字提高到1万 性能也不会有太大差别。

当数字提升到1万 扣子、Dify、n8n(免费版)三个平台都跑不动了,此外它的并发能力也是远远走在最前面:

用100个线程同时跑 到达到了3000/s的并发,而且是零错误。

总结

若需构建最小 MVP 进行试错,使用扣子、Dify 是不错的选择, 一旦业务量起来 了就要考虑受制于人的风险,平台是否自主可控,如果业务量起来了,而服务确撑不住那就太尴尬可惜了。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

扣子 Dify 工作流 性能测试 ApiFlow
相关文章