CentOS7安装RabbitMQ
由于rabbitmq是基于erlang语言开发的,所以必须先安装erlang。
安装依赖
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
erlang官网:
https://www.erlang.org/downloads
下载(会比较慢,请耐心等待)
wget http://erlang.org/download/otp_src_22.0.tar.gz
移走
mv otp_src_22.0 /usr/local/
切换目录
cd /usr/local/otp_src_22.0/
创建即将安装的目录
mkdir ../erlang
配置安装路径
./configure --prefix=/usr/local/erlang
如果遇到这个错 你就假装没看到
安装
make install
查看一下是否安装成功
ll /usr/local/erlang/bin
添加环境变量
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
刷新环境变量
source /etc/profile
甩一条命令
erl
瞬间进入了一个未知的世界
在里面输入halt().命令退出来(那个点号别忘记)
安装RabbitMQ
rabbitmq下载地址:
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.15
下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.15/rabbitmq-server-generic-unix-3.7.15.tar.xz
由于是tar.xz格式的所以需要用到xz,没有的话就先安装
yum install -y xz
第一次解压
/bin/xz -d rabbitmq-server-generic-unix-3.7.15.tar.xz
第二次解压
tar -xvf rabbitmq-server-generic-unix-3.7.15.tar
移走
mv rabbitmq_server-3.7.15/ /usr/local/
改名
mv /usr/local/rabbitmq_server-3.7.15 rabbitmq
配置环境变量
echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
刷新环境变量
source /etc/profile
创建配置目录
mkdir /etc/rabbitmq
回到顶部
启动命令
启动:
rabbitmq-server -detached
停止:
rabbitmqctl stop
状态:
rabbitmqctl status
防火墙之类的请自行处理(5672和15672端口),反正我是从来不开防火墙。
回到顶部
WEB管理
开启web插件
rabbitmq-plugins enable rabbitmq_management
访问:http://127.0.0.1:15672/
默认账号密码:guest guest(这个账号只允许本机访问)
回到顶部
用户管理
查看所有用户
rabbitmqctl list_users
添加一个用户
rabbitmqctl add_user admin 123456
配置权限
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
查看用户权限
rabbitmqctl list_user_permissions admin
设置tag
rabbitmqctl set_user_tags admin administrator
删除用户(安全起见,删除默认用户)
rabbitmqctl delete_user guest
回到顶部
登陆
配置好用户之后重启一下rabbit
然后就可以用新账号进行登陆

安装supervisord
yum install epel-release
yum install -y supervisor
#yum -y install python-setuptools zlib
easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf
mkdir -p /data/etc/supervisord/
mkdir -p /data2/logs/supervisord/
chmod 777 /data2/logs/supervisord/
修改 /etc/supervisord.conf
sed -i -e "s#logfile=/tmp/supervisord.log#logfile=/data2/logs/supervisord/supervisord.log#g" /etc/supervisord.conf
sed -i -e "s#file=/tmp/supervisor.sock#file=/var/run/supervisor.sock#g" /etc/supervisord.conf
sed -i -e "s#pidfile=/tmp/supervisord.pid#pidfile=/var/run/supervisord.pid#g" /etc/supervisord.conf
sed -i -e "s#serverurl=unix:///tmp/supervisor.sock#serverurl=unix:///var/run/supervisor.sock#g" /etc/supervisord.conf
echo "[include]" >> /etc/supervisord.conf
echo "files = /data/www/supervisord/*.ini" >> /etc/supervisord.conf
操作脚本:
vi /usr/lib/systemd/system/supervisord.service
#输入下面内容,并保存
[Unit]
Description=Supervisord
After=network.target
[Service]
Type=forking
PIDFile=/var/run/supervisord.pid
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
Restart=always
[Install]
WantedBy=multi-user.target
保存
#修改权限
chmod +x /usr/lib/systemd/system/supervisord.service
systemctl enable supervisord.service
启用:systemctl start supervisord
#其它控制命令
systemctl stop supervisord
systemctl reload supervisord
查看进程列表:
systemctl status supervisord
#supervisorctl status
停止进程 mq_test_worker:
supervisorctl stop mq_test_worker:
开始进程 mq_test_worker::
supervisorctl start mq_test_worker:
启动程序如果提示:Starting supervisor: 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.
unlink /var/run/supervisor.sock
sudo chmod 777 /run
sudo chmod 777 /var/log
sudo touch /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
supervisord -c /etc/supervisord.conf
ps aux | grep supervisord
最后效果
supervisord -c /etc/supervisord.conf 开启supervisord服务
supervisorctl start mq_test_worker 开启需要常驻的脚本服务
执行脚本test.php
然后tail -f mq_test_worker.log 里面可以看到队列的数据

代码附件 : msg_broker.zip
参考网站
RabbitMQ:https://www.cnblogs.com/fengyumeng/p/11133924.html
supervisord(碰到的坑):
https://www.missshi.cn/api/view/blog/5aafcf405b925d681e000000
https://www.cnblogs.com/ruanraun/p/supervisor.html
https://blog.csdn.net/weixin_41762173/article/details/88901970
声明:此文系舞林cuzn(www.wulinlw.org)原创稿件,转载请保留版权