n8n 1.0 正式发布:迈向生产级的自动化新纪元
n8n 官方宣布正式推出 v1.0 版本,这不仅是版本号的变化,更是其架构演进的关键里程碑。经过四年的打磨,n8n 1.0 旨在解决早期版本在生产环境中遇到的稳定性、扩展性和安全性问题,使其成为企业级工作流自动化的首选工具。
核心突破与功能特性
1. 原生 Python 支持
虽然 JavaScript 仍是默认语言,n8n 1.0 在 Code 节点 中正式引入了对 Python 的原生支持。开发者现在可以直接在节点内调用丰富的 Python 标准库及第三方模块,极大地扩展了数据处理和复杂逻辑实现的能力。
2. 执行引擎深度重构
为优化多分支工作流的性能与逻辑,n8n 1.0 改变了执行顺序:
- 深度优先 (Depth-First):取代了旧版的广度优先模式。现在,每个分支会完全执行完毕后,才会开始下一个分支。执行顺序基于画布位置(从上到下,从左到右)。
- 多输入节点优化:多输入节点仅在收到至少一个输入数据时才会执行,避免了旧版中因部分输入就绪而提前触发导致的逻辑错误。
3. 架构与安全性升级
- Docker 权限加固:Docker 容器内的 n8n 进程不再以
root用户运行,而是使用node用户,显著提升了容器化部署的安全性。 - 强制用户管理:移除了 BasicAuth 和外部 JWT 等旧认证方式,强制要求使用基于角色的用户管理系统,确保多租户环境下的权限隔离。
- 错误处理增强:表达式中的语法或运行时错误(如引用不存在的节点)现在会在后端抛出明确错误,而非静默失败,并建议配置“错误工作流”以接收通知。
重要变更与迁移指南
数据库与存储
- MySQL/MariaDB 弃用:n8n 已正式弃对 MySQL 和 MariaDB 的支持,建议迁移至 PostgreSQL 以获得更好的兼容性和长期维护支持。
- 自定义节点路径变更:自定义节点不再从全局
node_modules加载,必须安装到~/.n8n/custom或~/.n8n/nodes目录。
部署与性能
- 执行模式调整:
EXECUTIONS_PROCESS环境变量及own模式已废弃,默认回归main模式。虽然main模式启动更快,但在高内存消耗场景下可能影响整个应用,建议通过配置queue mode进行资源隔离。 - Docker 镜像更新:Debian 和 RHEL 基础镜像已被移除,请使用官方维护的最新镜像。
- WebSocket 默认启用:
N8N_PUSH_BACKEND环境变量默认使用 WebSocket 推送 UI 更新,替代了 SSE 模式。
开发者价值总结
n8n 1.0 通过深度优先的执行逻辑和严格的错误处理机制,大幅降低了复杂工作流的调试成本。Python 的加入填补了非 JS 生态开发者的空白,而强制的用户管理和容器化安全升级则满足了企业级合规与运维的高标准要求。尽管存在部分迁移成本(如数据库迁移和节点路径调整),但整体架构的稳健性提升是显而易见的。
"n8n 1.0 代表了我们在过去四年中投入的巨大努力,旨在让 n8n 成为最易访问、最强大且最灵活的自动化工具,并准备好在要求严苛的生产环境中运行。" —— n8n 官方团队