Beanstalkd 基本概念和使用
1:什么是 Beanstalkd ?
Beanstalkd 一个高性能、轻量级的分布式内存队列系统
简单来说,就是一个队列,相比于 数据库/redis 队列相比。
更专业。能完成的功能更多。就这么理解就好。
3:Beanstalkd 的优势是什么?
- 优先级(priority)
- 延迟(delay)
- 持久化(persistent data)
- 预留(buried)
- 任务超时重发(time-to-run)
4:Beanstalkd 基本概念和原理?
在 Beanstalkd 中,需要明白两个很重要的概念。
Tube(管道) 和 Job(任务),如何理解这两个概念呢?
我们知道队列的意思,就是像在排队一样,知道了这个概念,就可以明白他的作用了。
比如在 北京站(Beanstalkd) 里面,有多个不同功能的窗口(Tube),我们在对应的 买票/退票/..窗口排队(job)。
管道的作用更像是区分多个任务(job)之间的隔离一样。
形象的来说,就能更好理解 Beanstalkd 里面任务的状态了。
1:ready
在 北京站(Beanstalkd) 里正常排队买票,我是已经随时准备好的状态。那么我的状态就是(ready);
ready 即为准备完成,即可随时处理。
2: delayed
在 北京站(Beanstalkd) 里正常排队买票,突然发现我钱没带,叫我的同学,我同学说两个小时之后才能给我送过来。那么我的状态就是(delayed);
delayed 即为延时处理,即是在指定时间过去之后才能被处理。
3:reserved
reserved 即为已读取的状态,意为正在处理。
在 北京站(Beanstalkd) 里正常排队买票,排到你了。但是,排到你了,并不是说你就是可以正常的买到票,可能因为种种原因导致交易失败。
如果交易失败(超出指定的处理时间),该订单(job)会回到(ready状态)。
4:delete
删除,没什么好说的,就是已经处理完了,从队列中删除了。
可以参考下图:
取自慕课网

5:如何使用 Beanstalkd ?
可以看一下我的 Github。
封装了一部分 Beanstalkd 的常用方法。
Beanstalkd 基本概念和使用的更多相关文章
- 简单易用的任务队列-beanstalkd
概述 beanstalkd 是一个简单快速的分布式工作队列系统,协议基于 ASCII 编码运行在 TCP 上.其最初设计的目的是通过后台异步执行耗时任务的方式降低高容量 Web 应用的页面延时.其具有 ...
- Beanstalkd一个高性能分布式内存队列系统
高性能离不开异步,异步离不开队列,内部是Producer-Consumer模型的原理. 设计中的核心概念: job:一个需要异步处理的任务,是beanstalkd中得基本单元,需要放在一个tube中: ...
- beanstalkd 消息队列
概况:Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Faceb ...
- 【转】Beanstalkd 队列简易使用
Beanstalkd一个高性能分布式内存队列系统 之前在微博上调查过大家正在使用的分布式内存队列系统,反馈有Memcacheq,Fqueue, RabbitMQ, Beanstalkd以及link ...
- Beanstalkd介绍
特征 优先级:任务 (job) 可以有 0~2^32 个优先级, 0 代表最高优先级,beanstalkd 采用最大最小堆 (Min-max heap) 处理任务优先级排序, 任何时刻调用 reser ...
- Beanstalkd
摘要by ck:beanstalkd 和 kafka的本质区别是什么? Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web ...
- Beanstalkd使用
Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Facebook ...
- 使用beanstalkd实现定制化持续集成过程中pipeline
持续集成是一种项目管理和流程模型,依赖于团队中各个角色的配合.各个角色的意识和配合不是一朝一夕能练就的,我们的工作只是提供一种方案和能力,这就是持续集成能力的服务化.而在做持续集成能力服务化的过程中, ...
- Beanstalkd 一个高性能分布式内存队列系统
需要一个分布式内存队列,能支持这些特性:任务不重不漏的分发给消费者(最基础的).分布式多点部署.任务持久化.批量处理.错误重试..... 转载:http://rdc.taobao.com/blog/c ...
随机推荐
- postman参数获取不到原因
在使用postman时,会发现经常提示参数错误,然而代码没有问题,仔细一看,原来是粘贴复制参数到postman时,前后有空格.
- 【iCore1S 双核心板_FPGA】例程十:乘法器实验——乘法器的使用
实验现象: 通过FPGA 的一个I/O 口连接LED:设定I/O 为输出模式.内部乘法器完成乘法计算后改变输出LED 的状态(红色LED 闪烁). 核心代码: module MULT( input C ...
- ssh免密码登录配置方法
每次输密码很麻烦,免密登录设置方法按照<ssh免密码登录配置方法>即可,简单来说: 1.终端上执行ssh-keygen -t rsa,生成密钥对(存放在/home/usera/.ssh). ...
- Java知多少(15)字符串
从表面上看,字符串就是双引号之间的数据,例如“微学苑”.“http://www.weixueyuan.net”等.在Java中,可以使用下面的方法定义字符串: String stringName ...
- WPF Input Validation Using MVVM
Data validation is a key part in WPF.Validation is used to alert the user that the data he entered i ...
- 如何停止和禁用Linux系统中的不需要的服务
从Linux中删除不需要的服务 在本文中,我们将讨论一些您不需要的不需要的应用程序和服务,但它们是在操作系统安装期间默认安装的,并且不知不觉地开始吃您的系统资源. 让我们首先知道使用以下命令在系统上运 ...
- Linux Ubuntu 能PING IP但不能PING主机域名的解决方法
------------------------------------------------------------------------------- vi /etc/nsswitch.con ...
- [Laravel] 13 - WEB API : update & error tracking
前言 一.大纲 Ref: https://www.imooc.com/video/3134 版本升级分析以及数据表设计 版本升级分析 掌握如何设计版本升级数据表 版本升级接口开发以及APP演示 二.数 ...
- Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境 一.环境说明 个人理解:zookeeper可以独立搭建集群,hbase本身不能独立搭建集群需要和hadoo ...
- 10.22crm
2018-10-23 08:28:41 由于昨晚上断网,所以今天早上补更一下 越努力,越幸运!永远不要高估自己! crm老师就讲三四天,还有明后两天! 主要是讲一些基本使用,自定义配置陪一些东西! 主 ...