跳到主要内容

v0.7 新特性

Crawlab v0.7.0 是一个重要版本,聚焦于数据库集成现代化的编辑体验,以及为分布式集群重建的通信层。本页总结了主要变化。 如果你正在从 v0.6.x 升级,请先阅读迁移指南——本版本包含一处对集群通信的破坏性变更。

数据库 ORM

Crawlab 现在为 SQL 数据库内置了原生 ORM(对象关系映射) 支持,由 GORM 驱动。

  • 支持 MySQLPostgreSQLSQL Server
  • 自动管理表结构——Crawlab 会为你检测并维护数据表,因此在存储抓取数据前,你不再需要手动编写 CREATE TABLE 语句。
  • ORM 模式是按数据库的开关,可以按需选择性启用。它是非破坏性的:开启或关闭时都会保留已有数据。

详见数据库指南

现代化代码编辑器

浏览器内的文件编辑器现在基于 Monaco 引擎构建——即驱动 VS Code 的同款编辑器。

  • 支持包括 Python、Node.js、Go 在内的多种语言的语法高亮。
  • 上下文感知的 IntelliSense / 自动补全。
  • 多文件编辑,配合目录树导航与拖拽式文件管理。

详见代码编辑器指南

gRPC 通信全面重构

节点间通信(主节点 ↔ 工作节点)与文件同步均已基于 gRPC 重建。

  • 默认 gRPC 端口为 9666,并且必须能被每个工作节点访问。
  • 连接设计上具备弹性:自动重连(指数退避)、熔断器与 keepalive。
  • 相对 v0.6.x 的破坏性变更——v0.6.x 与 v0.7.0 节点无法在同一集群中共存,因此需要进行整个集群的升级。
注意

这是一处破坏性变更。在升级现有集群前,请先查看迁移指南

多平台 Docker 镜像

官方 Docker 镜像现在为多架构镜像,在同一标签下同时发布 AMD64ARM64 版本。

  • 可在 ARM64 硬件(如 Apple Silicon 和 AWS Graviton)上原生运行。
  • 无需单独的标签或镜像——在任意受支持的架构上拉取相同标签即可。

参见安装指南开始使用。

任务执行与可靠性

任务执行针对生产负载进行了加固。

  • 有界 goroutine 池,配合动态的最大工作数上限,使资源占用更可预测。
  • 僵尸与孤儿进程防护,已结束的任务不会遗留进程。
  • 基于 HEARTBEAT(心跳) 的节点健康监控。
  • 优雅关闭,节点停止时妥善处理进行中的工作。

此外,你现在可以批量删除任务,并且 Crawlab 会阻止删除仍被项目、定时任务、爬虫或节点引用的资源。

基础设施

在底层,v0.7.0 对平台基础进行了现代化升级。

  • OpenTelemetry 分布式追踪与结构化日志,提升可观测性。
  • 后端基于 Go 1.23.7 构建。
  • 前端基于 Vue 3.5.13TypeScript 构建。

从 v0.6.x 升级

由于集群通信与文件同步现在均使用 gRPC,所有节点必须一起升级——你不能在同一集群中混用 v0.6.x 与 v0.7.0 节点。 请确保主节点的 gRPC 端口(默认 9666)能被每个工作节点访问。

完整的升级流程(包括备份、验证与回滚步骤)请参阅迁移指南