Beanstalkd这款简单易用的任务队列,如何实现高效任务管理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2591个文字,预计阅读时间需要11分钟。
beanstalkd是一个简单快捷的分布式工作队列系统,协议基于ASCII编码,运行在TCP上。其最初设计目的是通过后台异步执行耗时任务来降低Web应用的页面延迟。
概述beanstalkd 是一个简单快速的分布式工作队列系统,协议基于 ASCII 编码运行在 TCP 上。其最初设计的目的是通过后台异步执行耗时任务的方式降低高容量 Web 应用的页面延时。其具有简单、轻量、易用等特点,也支持对任务优先级、延时/超时重发等控制,同时还有众多语言版本的客户端支持,这些优点使得它成为各种需要队列系统场景的一种常见选择。
beanstalkd 优点- 如他官网的介绍,simple&fast,使用非常简单,适合需要引入消息队列又不想引入 kafka 这类重型的 mq,维护成本低;同时,它的性能非常高,大部分场景下都可以 cover 住。
- 支持持久化
- 支持消息优先级,topic,延时消息,消息重试等
- 主流语言客户端都支持,还可以根据 beanstalkd 协议自行实现。
- 无最大内存控制,当业务消息极多时,服务可能会不稳定。
- 官方没有提供集群故障切换方案(主从或哨兵等),需要自己解决。
- job
任务,队列中的基本单元,每个 job 都会有 id 和优先级。有点类似其他消息队列中的 message 的概念。但 job 有各种状态,下文介绍生命周期部分会重点介绍。job 存放在 tube 中。
- tube
管道,用来存储同一类型的 job。有点类似其他消息队列中的 topic 的概念。beanstalkd 通过 tube 来实现多任务队列,beanstalkd 中可以有多个管道,每个管道有自己的 producer 和 consumer,管道之间互相不影响。
- producer
job 生产者。
本文共计2591个文字,预计阅读时间需要11分钟。
beanstalkd是一个简单快捷的分布式工作队列系统,协议基于ASCII编码,运行在TCP上。其最初设计目的是通过后台异步执行耗时任务来降低Web应用的页面延迟。
概述beanstalkd 是一个简单快速的分布式工作队列系统,协议基于 ASCII 编码运行在 TCP 上。其最初设计的目的是通过后台异步执行耗时任务的方式降低高容量 Web 应用的页面延时。其具有简单、轻量、易用等特点,也支持对任务优先级、延时/超时重发等控制,同时还有众多语言版本的客户端支持,这些优点使得它成为各种需要队列系统场景的一种常见选择。
beanstalkd 优点- 如他官网的介绍,simple&fast,使用非常简单,适合需要引入消息队列又不想引入 kafka 这类重型的 mq,维护成本低;同时,它的性能非常高,大部分场景下都可以 cover 住。
- 支持持久化
- 支持消息优先级,topic,延时消息,消息重试等
- 主流语言客户端都支持,还可以根据 beanstalkd 协议自行实现。
- 无最大内存控制,当业务消息极多时,服务可能会不稳定。
- 官方没有提供集群故障切换方案(主从或哨兵等),需要自己解决。
- job
任务,队列中的基本单元,每个 job 都会有 id 和优先级。有点类似其他消息队列中的 message 的概念。但 job 有各种状态,下文介绍生命周期部分会重点介绍。job 存放在 tube 中。
- tube
管道,用来存储同一类型的 job。有点类似其他消息队列中的 topic 的概念。beanstalkd 通过 tube 来实现多任务队列,beanstalkd 中可以有多个管道,每个管道有自己的 producer 和 consumer,管道之间互相不影响。
- producer
job 生产者。

