转自:http://blog.csdn.net/starparker/article/details/24150207
beanstalkd是一个轻量级消息中间件
支持过有9.5 百万用户的Facebook Causes应用
Beanstalkd和RabbitMQ关系,就好比Nginx和Apache,Varnish和Squid
消息列队思想
一般任务处理方式
beanstalk流程
安装:
centos安装beanstalkd
我们可以看见官网一句话 你能在epel中找到beanstalk
http://kr.github.io/beanstalkd/download.html
我们先安装epel
- rpm -ivh http://mirror.digitalnova.at/epel/6/i386/epel-release-6-8.noarch.rpm
- rpm -ivh http://mirror.digitalnova.at/epel/6/i386/epel-release-6-8.noarch.rpm
如果上面链接失效可以自己找个可用的
http://mirrors.fedoraproject.org/publiclist/EPEL/
- yum install beanstalkd
- yum install beanstalkd
开机启动
- <strong>chkconfig beanstalkd on</strong>
如果供外部调用 就关闭防火墙或设置下端口
- <strong>service iptables stop</strong>
- <strong>service beanstalkd start</strong>
查看相关信息
如果自己懒得写API就用已经写好的
https://github.com/kr/beanstalkd/wiki/client-libraries
很多已经写好的API
正好有这个的相关文章
- PHP: beanstalk - minimalistic
我们运行可以简单跑下测试
- yum install -y php wget unzip
- wget https://codeload.github.com/davidpersson/beanstalk/zip/master
- mv master master.zip
- unzip master.zip
- cd beanstalk-master/tests/
- vim bench.php //后10000改成10 保存退出
- vim run.php
代码如下
- <?php
- require_once '../src/Socket/Beanstalk.php';
- $beanstalk = new Socket_Beanstalk();
- while (true) {
- $job = $beanstalk->reserve();
- file_put_contents('log',@file_get_contents('log')."\n".$job['id'].':'.$job['body']);
- $beanstalk->delete($job['id']);
- }
- ?>
运行 php bench.php
运行 php run.php 因为无限循环 我们 ctrl+c
运行vim log
vim log 我们会看到如下内容(我这里做过一次测试所以id从11开始)