1-1 beanstalkd的简介

Beanstalkd  队列

 

1、安装Beanstalkd

2、Beanstalkd 核心概念

3、pheanstalk类

4、Beanstalkd管理

5、Beanstalkd 项目应用

 

队列---先进先出

队列的应用场景

1、异步处理

2、系统解耦

3、定时任务

 

异步处理:

注册---发邮件---根据信息分类----筛选打折商品----放入邮件发送给用户

提交注册信息到成功页面返回

 1-1 beanstalkd的简介

 

用队列的延时特性,来实现定时任务

 

Beanstalkd是什么?

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

 

RabbitMQ

Kafka

 1-1 beanstalkd的简介

 

Beanstalkd特性::

 

 

优先级(priority)

延迟(delay)

持久化(persistent data)

预留(buried)

任务超时重发(time-to-run)

优先级

支持02**32的优先级,值越小,优先级越高,默认优先级为1024

持久化

可以通过binlogjob及其状态记录到文件里面,在Beanstalkd下次启动时可以通过读取binlog来恢复之前的job及状态。

分布式容错

分布式设计和Memcached类似,beanstalkd各个server之间并不知道彼此的存在,都是通过client来实现分布式以及根据tube名称去特定server获取job

◆      超时控制

 

不足

在使用中发现一个Beanstalkd尚无提供删除一个tube的操作,只能将tubejob依次删除,并让Beanstalkd来自动删除空tube。还有就是Beanstalkd不支持客户端认证机制(开发者将应用场景定位在局域网)

 

Beanstalkd设计里面的核心概念:

job

一个需要异步处理的任务,是Beanstalkd中的基本单元,需要放在一个tube中。

tube

一个有名的任务队列,用来存储统一类型的job,是producerconsumer操作的对象。

producer

Job的生产者,通过put命令来将一个job放到一个tube中。

consumer

 

1-1 beanstalkd的简介

 

 



 重点:任务状态

1-1 beanstalkd的简介

 















1-1 beanstalkd的简介
















加群讨论一起进步

beanstalkd

683024907


项目源码托管:http://code.taobao.org/p/gwish/src/beanstalkd/

或者到群共享下载