Beanstalkd+Supervisor构建消息队列

来源:互联网 发布:如何防御网络攻击 编辑:程序博客网 时间:2024/06/05 10:54
参考环境:centos 6.5

1、Beanstalkd

Beanstalkd,一个高性能、轻量级的分布式内存队列系统,最初设计的目的是想通过后台异步执行耗时的任务来降低高容量Web应用系统的页面访问延迟,支持过有9.5 million用户的Facebook Causes应用。后来开源,现在有PostRank大规模部署和使用,每天处理百万级任务。Beanstalkd是典型的类Memcached设计,协议和使用方式都是同样的风格,所以使用过memcached的用户会觉得Beanstalkd似曾相识。

参考链接:

Beanstalkd
Beanstalkd介绍
Beanstalkd安装

1、安装Beanstalkd

# yum install beanstalkd

2、开启Beanstalkd

》Usage: beanstalkd -l [ip address] -p [port #] # beanstalkd -l 127.0.0.1 -p 11301 &如果安装包管理器(i.e. aptitude),你将能够管理Beanstalkd作为服务守护进程。》 To start the service: # service beanstalkd start 》 To stop the service: # service beanstalkd stop》 To restart the service: # service beanstalkd restart 》 To check the status: # service beanstalkd status

2、Supervisor

C/S架构的进程控制系统,可使用户在类UNIX系统中监控、管理进程。常用于管理与某个用户或项目相关的进程。

参考链接:

Supervisor官网
参考1
参考2
参考3
参考4

1、安装Supervisor

1、安装python自动化工具# yum install python-setuptools2、安装supervisor# easy_install supervisor3、测试安装是否成功     # echo_supervisord_conf

2、修改配置

1、创建配置文件# mkdir -m 755 -p /etc/supervisor/# echo_supervisord_conf > /etc/supervisor/supervisord.conf2、编辑配置文件在supervisord.conf最后增加如下:
[program:test]command=/opt/soft/php/bin/php /home/m/test/app/cli.php ;被监控进程;process_name=%(process_num)02d;numprocs=5 ;启动几个进程autostart=true ;随着supervisord的启动而启动autorestart=true ;自动启动startsecs=1 ;程序重启时候停留在runing状态的秒数startretries=10 ;启动失败时的最多重试次数stderr_logfile=/tmp/supervisor/test_err.log ;错误日志stdout_logfile=/tmp/supervisor/test.log ;日志

3、启动supervisor

1、启动supervisor# supervisord -c /etc/supervisor/supervisord.conf# pstree -p | grep supervisord  查看supervisord进程2、进入supervisor管理# supervisorctl -c /etc/supervisor/supervisord.confstatus 查看状态》test RUNNING pid 2554,uptime 0:00:10  stop all停止reload重启监控服务
注意:(1)每次修改配置文件后**需进入supervisorctl,执行reload**, 改动部分才能生效。(2)两个命令supervisord : supervisor的服务器端部分,用于supervisor启动supervisorctl:启动supervisor的命令行窗口,在该命令行中可执行start、stop、status、reload等操作。错误:Error: Another program is already listening on a port that one of our HTTP servers is configured to use. Shut this program down first before starting supervisord.解决:sudo unlink /tmp/supervisor.sock orsudo unlink /var/run/supervisor.sock


作者:flycorn
链接:http://www.jianshu.com/p/2c40cbca616a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。