开源的消息队列系统很多如erlang开发的rabbitmq,java开发的activemq,redis的list也可以实现,workerman也有消息队列
我们项目用的是rabbitmq,它的优点
1、基于erlang语言开发具有高可用高并发的优点,适合集群服务器
2、健壮、稳定、易用、跨平台、支持多种语言、文档齐全
3、有消息确认机制和持久化机制,可靠性高
消息队列(Message Queue):把消息按照产生的次序加入队列,而由另外的处理程序/模块将其从队列中取出,并加以处理;从而形成了一个基本的消息队列。使用消息队列可以很好地将任务以异步的方式进行处理,或者进行数据传送和存储等。例如,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取消息队列来异步插入。另外,还可以将较慢/较复杂的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理。
常规的使用场景:短信服务、电子邮件服务、图片处理服务、好友动态推送服务等。
注意事项:
1、安装erlang处最耗时间,也容易出错,具体问题当时也找
2、防火墙开启15672端口才能使用web管理平台,初始密码guest不安全,上线必须修改
3、后台启动 sbin/rabbitmq-server start -detached
停止rabbitmq服务
sbin/rabbitmqctl stop
查看rabbitmq服务
ps -af |grep rabbitmq
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc
先下载erlang
wget http://www.erlang.org/download/otp_src_R16B01.tar.gz
这里由于不需要用java编译器编译,所以去掉了--without-javac
./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll --without-javac
正常配置完成后会显示如下
*********************************************************************
********************** APPLICATIONS DISABLED **********************
*********************************************************************
jinterface : Java compiler disabled by user
*********************************************************************
*********************************************************************
********************** APPLICATIONS INFORMATION *******************
*********************************************************************
wx : wxWidgets not found, wx will NOT be usable
*********************************************************************
*********************************************************************
********************** DOCUMENTATION INFORMATION ******************
*********************************************************************
documentation :
xsltproc is missing.
fop is missing.
The documentation can not be built.
*********************************************************************
如果你不行中枪,请再执行一边依赖包的那一步吧....
编译安装
这个过程是非常的慢的,不过也要看你的机子的性能,我的虚拟机反正是慢.... 去喝杯茶,慢慢的等吧...
make && make install
虽然会等待一会,但是最终还是成功了,至少我的是成功了,哈哈
做个ln吧,你要是不想要就不用执行这个命令了.
ln -s /usr/local/erlang/bin/erl /usr/local/bin/erl
设置环境变量以便下一步安装时使用(这个只是临时性的设置)
export PATH=$PATH:/usr/local/erlang/bin/
或者永久设置
编辑/etc/profile文件,然后在最下边加上
vim /etc/profile
export PATH=$PATH:/usr/local/erlang/bin/
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.5/rabbitmq-server-generic-unix-3.1.5.tar.gz
因为我是在官网下载的编译完成的二进制文件,所以解压出来即可使用,你也可以去官网下载其它的,这里就不再赘述其它版本的了.也可以到官网下载,现在进入你的解压包中,你就能看见一个sbin目录,在这个目录里边有你想要的命令,要是想启动rabbitmq的话只要执行以下命令即可
# sbin/rabbitmq-server start
然后你就会看见出现以下界面
RabbitMQ 3.1.5. Copyright (C) 2007-2013 GoPivotal, Inc.
## ## Licensed under the MPL. See http://www.rabbitmq.com/
## ##
########## Logs: sbin/../var/log/rabbitmq/[email protected]
###### ## sbin/../var/log/rabbitmq/[email protected]
##########
Starting broker... completed with 6 plugins.
如果你想用web界面的方式看看这个东东,那你需要继续往下看...
sbin/rabbitmq-plugins enable rabbitmq_management
执行完这个命令然后重新启动rabbitmq就可以了.
分别执行
sbin/rabbitmqctl stop
sbin/rabbitmq-server start
PS:启动web查看工具会多开一个15672端口.
重启完成之后你用你的浏览器输入你rabbitmq服务器地址然后访问15672端口,你会看见登陆界面,账号和密码都是guest
登陆之后你会看到如下的界面
到这里,rabbitmq服务端已经安装完成,要想php操作rabbitmq,还需要安装amqp扩展,参考我另篇文章
http://blog.csdn.net/nuli888/article/details/51854935
参考资料:http://www.bbtang.info/linux/591.html