1:什么是 Beanstalkd ?

  Beanstalkd 一个高性能、轻量级的分布式内存队列系统

  简单来说,就是一个队列,相比于 数据库/redis 队列相比。

  更专业。能完成的功能更多。就这么理解就好。

3:Beanstalkd 的优势是什么?

  1. 优先级(priority)
  2. 延迟(delay)
  3. 持久化(persistent data)
  4. 预留(buried)
  5. 任务超时重发(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 的常用方法。

  php-admin-beanstalkd

Beanstalkd 基本概念和使用的更多相关文章

  1. 简单易用的任务队列-beanstalkd

    概述 beanstalkd 是一个简单快速的分布式工作队列系统,协议基于 ASCII 编码运行在 TCP 上.其最初设计的目的是通过后台异步执行耗时任务的方式降低高容量 Web 应用的页面延时.其具有 ...

  2. Beanstalkd一个高性能分布式内存队列系统

    高性能离不开异步,异步离不开队列,内部是Producer-Consumer模型的原理. 设计中的核心概念: job:一个需要异步处理的任务,是beanstalkd中得基本单元,需要放在一个tube中: ...

  3. beanstalkd 消息队列

    概况:Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Faceb ...

  4. 【转】Beanstalkd 队列简易使用

    Beanstalkd一个高性能分布式内存队列系统   之前在微博上调查过大家正在使用的分布式内存队列系统,反馈有Memcacheq,Fqueue, RabbitMQ, Beanstalkd以及link ...

  5. Beanstalkd介绍

    特征 优先级:任务 (job) 可以有 0~2^32 个优先级, 0 代表最高优先级,beanstalkd 采用最大最小堆 (Min-max heap) 处理任务优先级排序, 任何时刻调用 reser ...

  6. Beanstalkd

    摘要by ck:beanstalkd  和  kafka的本质区别是什么? Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web ...

  7. Beanstalkd使用

    Beanstalkd,一个高性能.轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Facebook ...

  8. 使用beanstalkd实现定制化持续集成过程中pipeline

    持续集成是一种项目管理和流程模型,依赖于团队中各个角色的配合.各个角色的意识和配合不是一朝一夕能练就的,我们的工作只是提供一种方案和能力,这就是持续集成能力的服务化.而在做持续集成能力服务化的过程中, ...

  9. Beanstalkd 一个高性能分布式内存队列系统

    需要一个分布式内存队列,能支持这些特性:任务不重不漏的分发给消费者(最基础的).分布式多点部署.任务持久化.批量处理.错误重试..... 转载:http://rdc.taobao.com/blog/c ...

随机推荐

  1. C++ 重载(overload)、重写(overrride)、重定义(redefine)总结

    引自:http://www.189works.com/article-42111-1.html 先来看几个概念: 重载(overload),重写(override,也称覆盖), 重定义(redefin ...

  2. 【GMT43智能液晶模块】例程一:ARM驱动LED

    实验原理: 通过STM32的一个GPIO驱动一个红色LED,GPIO为推挽输出模式,采用灌电流 方式与LED连接,基于STemWin人机界面通过按钮控制GPIO高.低电平输出,从而 控制LED亮灭. ...

  3. [译]Godot 引擎 GDNative 架构初探

    GDNative的架构从最早叫"DLScript"的时候到目前为止已经发生了很大的变化.随着Godot 3.0版本接近最终发布以及API越来越稳定,是时候对GDNative目前的形 ...

  4. Java知多少(10)数据类型及变量

    Java 是一种“强类型”的语言,声明变量时必须指明数据类型.变量(variable)占据一定的内存空间.不同类型的变量占据不同的大小. Java中共有8种基本数据类型,包括4 种整型.2 种浮点型. ...

  5. 让ubuntu下的eclipse支持GBK编码

    把Windows下工程导入Linux下Eclipse中,由于以前的工程代码,都是GBK编码,而Ubuntu默认不支持GBK编码,所以,我们要让Ubuntu支持GBK,方法如下: 1.修改/var/li ...

  6. duilib进阶教程 -- TreeView控件(6)

    代码下载:http://download.csdn.net/detail/qq316293804/6483905 上一个教程中,界面已经和迅雷一模一样啦,大小和位置一个像素都不差哟,亏得Alberl调 ...

  7. MTK 屏幕旋转90度

    http://blog.csdn.net/ouo555/article/details/44806837 1.屏幕显示顺时针旋转90度 lk 横屏logo,顺时针旋转90度显示修改bootable/b ...

  8. [PHP] 07 - Json, XML and MySQL

    前言 [Node.js] 09 - Connect with Database 菜鸟JSON教程[内容不多] PHPSimpleXML[大概了解下即可] SQL语句需要复习一遍:http://www. ...

  9. eclipse去掉所有断点 恢复到默认窗口

    1.去掉所有断点 Window->Open Perspective->Debug默认是右上角的窗口中,切换到Breakpoints,如果里边有内容,那就是设置断点啦,点叉叉全部删掉就好了. ...

  10. css3整理--background-image

    background-image语法: background-image: url1,url2,...,urlN; 通过“,”分隔N张背景图片,background的所有其它属性需要配合该属性进行设置 ...