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 ...
随机推荐
- LeetCode: Largest Number 解题报告 以及Comparator, CompareTo 应用
Largest Number Given a list of non negative integers, arrange them such that they form the largest n ...
- Node入门教程(11)第九章:Node 的网络模块
net网络模块 net模块是node对TCP或者IPC开发的封装,包括了客户端和服务器端相关API.对于阅读本文,请您有一定的网络编程的基础.您需要已经了解了: ip协议,会配置ip地址 了解dns解 ...
- Thinkphp 关联模型和试图模型区别
关联模型主要在多表操作时使用,比如 user表,user_role表,role表 user_role字段:uid,rid,它作为中间表,负责将user和role之间的,1对1,1对多,多对多的关系进行 ...
- Linux查看文件总的数据行数,并按行拆分
先利用 wc -l BLM.txt 读出 BLM.txt 文件一共有多少行. 再 1. 以行数拆分 -l 参数: split –l 50 原始文件 拆分后文件名前缀 例:以50行对文件进行 ...
- SpringBoot------全局异常捕获和自定义异常
1.添加Maven依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w ...
- Eclipse设置默认的换行长度
1. 点击Window->Preferences->Java->Code Style->Formatter 2. 点击New,给profile随意取个名字,点击OK 3. Ma ...
- Markdown 列表
如下,分别表示无序列表 .有序列表 .待办列表 - Red - Blue - Green . Red . Blue . Green - [ ] 不勾选 - [x] 勾选
- ftp服务器Serv-U 设置允许自动创建不存在的目录
一.由来 最近改写了项目中ftp上传部分的代码. 用到的组件为: <dependency> <groupId>commons-net</groupId> <a ...
- Unity Editor工具-代码里复制Component
//CopyComponent ublic static T CopyComponent<T>(T original, GameObject destination) where T : ...
- ssh如何连接vmware的centos 6虚拟机
先安装虚拟机,我使用的是WMware 11.1.3 build-3206955+Centos7 其中出现一个问题是,我需要在虚拟机上安装软件,需要上网,虚拟机有几种网络连接方式: 暂时了解的是,“仅主 ...