Hatchet:分布式、容错任务队列的革命性选择
项目介绍
Hatchet 是一款分布式、容错任务队列系统,旨在替代那些难以管理的传统队列或发布/订阅系统。通过 Hatchet,您可以设计出能够从故障中恢复的持久性工作负载,解决并发、公平性和速率限制等问题。无需管理自己的任务队列或发布/订阅系统,您可以使用 Hatchet 在最少配置或基础设施的情况下,将函数分布在一组工作节点之间。
项目技术分析
Hatchet 基于低延迟队列构建,能够在实时交互能力和任务可靠性之间实现完美平衡。它支持 FIFO、LIFO、轮询和优先级队列等多种调度策略,帮助用户规避常见的扩展陷阱。此外,Hatchet 还具备可定制的重试策略和集成错误处理功能,确保操作能够从瞬态故障中快速恢复。
项目及技术应用场景
Hatchet 适用于多种场景,包括但不限于:
- 生成式 AI 的公平性:防止繁忙用户压垮系统,通过配置策略公平分配请求。
- 文档索引的批处理:处理大规模文档、图像等数据的批处理,并在故障时从中断处恢复。
- 多模态系统的工作流编排:处理多模态输入和输出,支持 DAG 风格的执行。
- 事件驱动处理的正确性:响应外部或内部事件,并自动重放事件。
项目特点
- 超低延迟和高吞吐量调度:Hatchet 能够在毫秒级延迟下处理大量任务,确保实时性和可靠性。
- 并发、公平性和速率限制:内置多种调度策略,简化配置,避免扩展问题。
- 设计上的弹性:通过可定制的重试策略和错误处理,确保任务在故障后快速恢复。
- 增强的可视性和控制:提供全面的运行搜索、延迟和错误率跟踪,以及自定义指标监控。
- 实用耐用的执行:支持事件重放和手动从特定步骤恢复执行。
- 定时任务和一次性调度:设置定期或未来特定时间的任务执行。
- 流量峰值保护:平滑处理流量峰值,确保系统负载可控。
- 增量流式处理:订阅后台工作节点的进度更新。
Hatchet 不仅支持云端部署,还提供自托管选项,并提供 Python、Typescript 和 Go 的开源 SDK,方便开发者快速上手。
快速开始
Hatchet 提供云端和自托管两种部署方式,详细文档和快速入门指南请访问:
Hatchet 支持 Python、Typescript 和 Go 的 SDK,具体文档和快速入门指南请访问:
Hatchet 的 SDK 仓库地址如下,如有问题欢迎提交 issue:
Hatchet 的诞生是为了解决现有队列系统(如 Celery、BullMQ)在事务性入队、依赖性任务执行和调试复杂性方面的问题。通过使用 PostgreSQL 作为后端,Hatchet 避免了 Redis 等存储方案中常见的数据丢失问题,并提供了更易于使用和调试的解决方案。
如果您在使用过程中遇到任何问题,欢迎通过 GitHub issues 提交 bug,或通过 Discord 联系我们。如果您有兴趣贡献代码,请访问 贡献文档 并加入我们的 Discord 社区。
Hatchet 正在快速发展,我们期待您的参与和反馈,共同打造一个更加强大和易用的分布式任务队列系统。
- CangjieCommunity为仓颉编程语言开发者打造活跃、开放、高质量的社区环境Markdown00
- redis-sdk仓颉语言实现的Redis客户端SDK。已适配仓颉0.53.4 Beta版本。接口设计兼容jedis接口语义,支持RESP2和RESP3协议,支持发布订阅模式,支持哨兵模式和集群模式。Cangjie033
- 每日精选项目🔥🔥 推荐每日行业内最新、增长最快的项目,快速了解行业最新热门项目动态~ 🔥🔥02
- qwerty-learner为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workersTSX022
- Yi-CoderYi Coder 编程模型,小而强大的编程助手HTML07
- advanced-javaAdvanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。JavaScript085
- taro开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/TypeScript09
- CommunityCangjie-TPC(Third Party Components)仓颉编程语言三方库社区资源汇总05
- Bbrew🍺 The missing package manager for macOS (or Linux)Ruby01
- byzer-langByzer(以前的 MLSQL):一种用于数据管道、分析和人工智能的低代码开源编程语言。Scala04