软件准备
centos7
xshell
otp_src_21.0.tar.gz
rabbitmq-server-generic-unix-3.7.10.tar.xz
Erlang安装
1、安装依赖环境
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel
注意:此时虚拟机需要能够访问外网,设置虚拟机网络为NAT模式。如果ping www.baidu.com 时提示未知host,但ping 百度ip可以访问,那么就需要在/etc/resolv.conf文件添加:nameserver 8.8.8.8,这样才能进行DNS解析,因为yum需要访问外网域名。
2、通过xftp上传otp_src_21.0.tar.gz到目录/usr/local
3、解压
cd /usr/local
tar -xvf otp_src_21.0.tar.gz
4、构建
cd otp_src_21.0
./otp_build autoconf
注意:如果出现./otp_build:行319: autoconf: 未找到命令,需要yum -y install autoconf
5、编译安装
./configure
make
make install
6、配置环境变量
vim /etc/profile
添加:
export ERLANG_HOME=/usr/local/lib/erlang
export PATH=$PATH:$ERLANG_HOME/bin
重启生效
source /etc/profile
7、查看
RabbitMQ安装
1、上传rabbitmq-server-generic-unix-3.7.10.tar.xz到目录/usr/local
2、解压
cd /usr/local
tar -xvf rabbitmq-server-generic-unix-3.7.10.tar.xz
配置环境变量
cd /etc
vim profile
添加:
export RABBITMQ_HOME=/usr/local/rabbitmq_server-3.7.10
(注:RabbitMQ配置、日志等文件路径默认都是基于$RABBITMQ_HOME)
生效
source profile
3、启用web管理插件
cd /usr/local/rabbitmq_server-3.7.10/sbin
./rabbitmq-plugins list
./rabbitmq-plugins enable rabbitmq_management
4、修改RabbitMQ配置
前提:rabbitmq从3.3.0开始禁止使用guest/guest通过除localhost外的访问,出于安全性考虑。
解决方法:
修改RabbitMQ的安装目录/usr/local/rabbitmq_server-3.7.10/ebin下的rabbit.app配置文件,将配置文件第39行{loopback_users, [<<“guest”>>]}修改为{loopback_users, []}
或者
使用一个具有非none的用户角色的非guest用户来访问web管理页面
5、启动RabbitMQ
./rabbitmq-server -detached # 后台运行RabbitMQ
浏览器输入:http://192.168.78.169:15672/
用户名/密码:guest/guest
注意:
防火墙放开web端口15672
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload
防火墙放开客户端连接端口5672
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --reload
.sh启动脚本
cd /root
mkdir rabbitmq
cd rabbitmq
vim rabbitmq-start-5672.sh
内容:
cd /usr/local/rabbitmq_server-3.7.10/sbin
./rabbitmq-server -detached
6、其他命令操作
rabbitmqctl stop [pid_file]
用于停止运行RabbitMQ的Erlang虚拟机和RabbitMQ服务应用,非阻塞。
pid_file:可选,注意使用-detach启动RabbitMQ是不会生成pid文件,默认在mnesia目录下,可以通过环境变量RABBITMQ_PID_FILE指定路径。
rabbitmqctl shutdown
用于停止运行RabbitMQ的Erlang虚拟机和RabbitMQ服务应用,此命令会阻塞直到Erlang虚拟机进程退出,如果没有成功关闭则返回一个非零值。
rabbitmqctl stop_app
停止RabbitMQ服务应用,但Erlang虚拟机还处于运行状态。
有些管理操作需要先停止RabbitMQ服务应用,如rabbitmqctl reset。
rabbitmqctl start_app
启动RabbitMQ服务应用。
rabbitmqctl wait [pid_file]
等待RabbitMQ服务应用的启动。
rabbitmqctl reset
将RabbitMQ节点重置还原到最初状态,包括从原来所在的集群中删除此节点,从管理数据库删除所有的配置信息,如用户、vhost等,以及删除所有的持久化消息。
执行前先执行rabbitmqctl stop_app。
rabbitmqctl force_reset
强制将RabbitMQ节点重置还原到最初状态。
rabbitmqctl rotate_logs {suffix]
指示RabbitMQ节点轮换日志文件,RabbitMQ节点会将原来的日志文件的内容追加到"原日志文件名称+后缀"的日志文件中,然后再将新的日志内容记录到新创建的日志文件中(与原始日志文件同名)。
如果不指定suffix,则日志文件只是重新打开而不会进行轮换。