n8n-autoscaling:自动扩缩容,赋能n8n工作流自动化平台

n8n-autoscaling:自动扩缩容,赋能n8n工作流自动化平台

n8n-autoscaling n8n queue mode build with automatic worker scaling and puppeteer n8n-autoscaling 项目地址: https://gitcode.com/gh_mirrors/n8/n8n-autoscaling

项目介绍

n8n-autoscaling 是一款针对n8n工作流自动化平台的Docker基础自动扩缩容解决方案。它通过监控Redis队列的长度动态地调整工作容器数量,无需配置k8s或其他容器扩缩容服务,一个简单的脚本来完成所有操作,并且易于配置。

该系统经过测试,能够在8核16GB内存的VPS上同时运行数百个执行实例。系统内置Puppeteer和Chrome,以提供比社区节点更高级的刮削功能。

项目技术分析

n8n-autoscaling 的架构由多个组件协同工作组成,以下是其技术架构概述:

graph TD
    A[n8n 主服务] -->|任务队列| B[Redis]
    B -->|监控队列| C[自动扩缩容服务]
    C -->|调整| D[n8n 工作节点]
    B -->|监控队列| E[Redis 监控服务]
    F[PostgreSQL] -->|存储数据| A
    A -->|Webhooks| G[n8n Webhook]

在这个架构中,n8n 主服务通过Redis进行任务队列管理,自动扩缩容服务根据队列长度动态调整工作节点数量,Redis监控服务用于确保系统的健康状态,而PostgreSQL则负责存储相关数据。

项目及技术应用场景

n8n-autoscaling 适用于需要动态调整工作负载以应对不断变化的任务队列长度的场景,尤其适用于以下几种情况:

  • 工作流自动化:在n8n工作流自动化中,任务可能会随时增加,自动扩缩容可以确保任务能够及时处理。
  • 负载均衡:系统根据工作负载自动调整资源,保持系统的响应速度和稳定性。
  • 成本优化:在不忙时自动减少资源,节省成本。

项目特点

n8n-autoscaling 的特点如下:

  • 动态扩缩容:根据Redis队列长度自动调整n8n工作容器数量。
  • 配置灵活:扩缩容阈值和限制易于配置,以适应不同的使用场景。
  • 监控机制:包括Redis队列监控服务和Docker健康检查。
  • 基于Docker Compose的部署:简化了部署流程,易于上手。

快速入门

以下是快速部署n8n-autoscaling的步骤:

  1. 将项目副本或克隆到选择的文件夹中。
  2. .env.example文件重命名为.env
  3. .env文件中配置环境变量,默认值通常足够使用,但建议修改密码和令牌。
  4. 创建Docker网络:
    docker network create shark
    
  5. 启动Docker服务:
    docker compose up -d
    

在步骤4中创建的shark外部网络可以方便后续添加其他容器,如果不打算这样做,可以在Docker Compose文件中注释掉。

配置

.env文件中,必须设置自己的密码和加密密钥。默认情况下,每个工作节点同时处理10个任务,可以通过修改docker-compose文件中的相应配置进行调整。

关键环境变量

以下是一些关键环境变量的说明:

| 变量名 | 描述 | 默认值 | |--------|------|--------| | MIN_REPLICAS | 最小工作容器数量 | 1 | | MAX_REPLICAS | 最大工作容器数量 | 5 | | SCALE_UP_QUEUE_THRESHOLD | 触发扩容的队列长度阈值 | 5 | | SCALE_DOWN_QUEUE_THRESHOLD | 触发缩容的队列长度阈值 | 2 | | POLLING_INTERVAL_SECONDS | 检查队列长度的间隔 | 30 | | COOLDOWN_PERIOD_SECONDS | 扩缩容操作之间的冷却时间 | 180 | | QUEUE_NAME_PREFIX | Redis队列前缀 | bull | | QUEUE_NAME | Redis队列名称 | jobs |

n8n 配置

确保设置了以下n8n环境变量:

  • EXECUTIONS_MODE=queue
  • QUEUE_BULL_REDIS_HOST=redis
  • QUEUE_HEALTH_CHECK_ACTIVE=true

自动扩缩容行为

自动扩缩容服务会:

  1. POLLING_INTERVAL_SECONDS秒监控一次Redis队列长度。
  2. 当队列长度超过SCALE_UP_QUEUE_THRESHOLD且当前副本数小于MAX_REPLICAS时进行扩容。
  3. 当队列长度低于SCALE_DOWN_QUEUE_THRESHOLD且当前副本数大于MIN_REPLICAS时进行缩容。
  4. 遵守COOLDOWN_PERIOD_SECONDS设置,在两次扩缩容操作间保持冷却时间。

监控

系统提供了Redis队列监控服务和详细的自动扩缩容服务日志,有助于监控和调试。

故障排除

  • 查看容器日志:docker-compose logs [service]
  • 验证Redis连接:docker-compose exec redis redis-cli ping
  • 手动检查队列长度:docker-compose exec redis redis-cli LLEN bull:jobs:wait

Webhook的URL示例: Webhooks使用Docker服务名称而非本地主机,例如: http://n8n-webhook:5678/webhook/d7e73b77-6cfb-4add-b454-41e4c91461d8

结论

n8n-autoscaling 为n8n工作流自动化平台提供了一个强大的自动扩缩容解决方案,能够根据工作负载动态调整资源,从而提高系统的响应能力和稳定性,同时优化成本。其易于配置和部署的特性使得它成为自动化工作流管理的理想选择。

n8n-autoscaling n8n queue mode build with automatic worker scaling and puppeteer n8n-autoscaling 项目地址: https://gitcode.com/gh_mirrors/n8/n8n-autoscaling

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gitblog_00881

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值