项目中对于队列以及队列任务优先级等功能的需求,各种队列测试下来,从功能全面,性能稳定,接口对接方便等等综合起来考虑,最终还是使用 RabbitMQ
来得靠谱。
从一套Centos上搭建一套 RabbitMQ
服务端开始,需要现在服务器上安装 erlang
环境。
安装erlang
安装依赖
yum -y install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf
下载安装包
wget http://erlang.org/download/otp_src_20.3.tar.gz
解压安装
tar -zxf otp_src_20.3.tar.gz
cd otp_src_20.3
./otp_build autoconf
./configure
make && make install
输入 erl
即可验证会进入 erlang
的环境,并显示版本信息,代表安装成功。
安装RabbitMQ
下载安装包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_15/rabbitmq-server-3.6.15-1.el7.noarch.rpm
yum安装
yum install rabbitmq-server-3.6.15-1.el7.noarch.rpm
打开开机启动
chkconfig rabbitmq-server on
基本操作
rabbitmq-server
启动/停止/重启/状态
service rabbitmq-server start
service rabbitmq-server restart
service rabbitmq-server stop
service rabbitmq-server status
RabbitMQ用户相关操作
列出所有用户
rabbitmqctl list_users
为用户guest修改密码
rabbitmqctl change_password guest 123456
新建用户并指定为超级管理员
rabbitmqctl add_user admin 12345678
rabbitmqctl set_user_tags admin administrator
删除用户
rabbitmqctl delete_user Username
启用web管理界面
rabbitmq-plugins enable rabbitmq_management
需要配置 nginx
转发来访问 web
管理界面。
nginx配置
server
{
listen 80;
server_name mq.test.com;
index index.html index.htm index.php;
include conf-server.conf;
client_max_body_size 64m;
error_page 404 /404.html;
proxy_connect_timeout 600s;
proxy_send_timeout 600s;
proxy_read_timeout 600s;
fastcgi_send_timeout 600s;
fastcgi_read_timeout 600s;
location / {
proxy_pass http://127.0.0.1:15672;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
access_log /opt/log/nginx/rabbitmq.access.log combined;
error_log /opt/log/nginx/rabbitmq.error.log warn;
}
配置好 nginx
后,重启 nginx
后就可以打开你配置的域名,看到 rabbitmq
的 web
管理界面,使用上面用户操作里配置好的超管用户名和密码登录即可。
登录后可以查看服务的运行状态,包括消息实时统计 Overview
,当前连接 Connections
,频道 Channels
,当前使用的 Exchanges
,当前队列 Queues
,以及用户配置 Admin
这些功能, web
界面的具体使用自行百度。
这样我们就有了一个完整功能的 rabbitmq
服务端供队列使用了。