一、安装Erlang
1、RabbitMQ3.7.8 对Erlang/OTP的版本要求
RabbitMQ3.7.8 要求Erlang/OTP版本:19.3.6.4 ~ 21.0.x
这个链接(http://www.rabbitmq.com/which-erlang.html)有详细说明.
2、Erlang安装说明
Erlang安装说明:https://github.com/erlang/otp/blob/maint/HOWTO/INSTALL.md
Erlang是一种通用的面向并发的编程语言
2.1、yum安装构建Erlang/OTP所需要的工具
yum install make gcc glibc-devel m4 ncurses-devel autoconf openssl-devel
yum install unixODBC unixODBC-devel
下面这些是要解包和构建Erlang/OTP所需要的工具,是必须的。
下面这些不是erlang必须的依赖项,如果下面依赖项不存在,在构建的时候就会自动跳过。
2.2、安装erlang
下载http://erlang.org/download/otp_src_20.0.tar.gz
tar -xvf otp_src_20.0.tar.gz
cd otp_src_20.0
./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll --without-javac
make && make install
ln -s /usr/local/erlang/bin/erl /usr/local/bin/
输入 erl验证是否安装成功。
二、安装rabbitmq
1、rabbitmq安装步骤
下载https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.8.tar -C /opt/
cd /opt
mv rabbitmq_server-3.7.8 rabbitmq_server
cd rabbitmq_server/
sbin/rabbitmq-plugins enable rabbitmq_management
后台启动rabbitmq-server命令./rabbitmq-server -detached
关闭rabbitmq-server命令:./rabbitmqctl stop
最后一定要把rabbitmq-server关闭,等全部配置调整完毕在启动。
2、调整rabbitmq配置信息
在/opt/rabbitmq_server/etc/rabbitmq下面创建文件rabbitmq.config和rabbitmq-env.conf,文件内容如下:
[root@node1 rabbitmq]# pwd
/opt/rabbitmq_server/etc/rabbitmq
[root@node1 rabbitmq]# more rabbitmq.config
[
{rabbit,
[{loopback_users, []}]
}
].
此配置解决guest用户不能远程登录问题。
[root@node1 rabbitmq]# more rabbitmq-env.conf
LOG_BASE=/data/rabbitmq
MNESIA_BASE=/data/rabbitmq/mnesia
3、防火墙设置
-A INPUT -p tcp -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 15672 -j ACCEPT
service iptables restart
service iptables save
4、集群设置
4.1、在192.168.0.119执行:
4.1.1、/etc/hosts设置
vi /etc/hosts
192.168.0.119 rabbitmq1
192.168.0.200 rabbitmq2
4.1.2、rabbitmq-env 设置
在/opt/rabbitmq_server/sbin/rabbitmq-env文件的最前面添加:
NODENAME=rabbit@rabbitmq1
4.1.3、启动rabbitmq-server
后台启动rabbitmq-server命令./rabbitmq-server -detached
./rabbitmqctl add_user admin 123456
./rabbitmqctl set_user_tags admin administrator
4.2、在192.168.0.200执行:
4.2.1、修改.erlang.cookie
chmod 600 ~/.erlang.cookie
修改~/.erlang.cookie的内容,和192.168.0.119的~/.erlang.cookie内容保持一致。
4.2.2、/etc/hosts设置
vi /etc/hosts
192.168.0.119 rabbitmq1
192.168.0.200 rabbitmq2
4.2.3、 rabbitmq-env 设置
在/opt/rabbitmq_server/sbin/rabbitmq-env文件的最前面添加:
NODENAME=rabbit@rabbitmq2
4.2.4、 启动rabbitmq-server
后台启动rabbitmq-server命令./rabbitmq-server -detached
./rabbitmqctl add_user admin 123456
./rabbitmqctl set_user_tags admin administrator
4.2.5、将rabbit@rabbitmq2加入集群
停止应用:./rabbitmqctl stop_app(rabbitmqctl stop 是停止服务)
清除所有队列:./rabbitmqctl reset
将rabbit@rabbitmq2加入集群:./rabbitmqctl join_cluster rabbit@rabbitmq2
重启应用:./rabbitmqctl start_app
查看集群状态:./rabbitmqctl cluster_status
5、登录Rabbitmq
http://192.168.0.119:15672/
用户名和密码:guest/guest
用户名和密码:admin/123456
http://192.168.0.200:15672/
用户名和密码:guest/guest
用户名和密码:admin/123456
6、HA 镜像模式队列设置
HA 镜像队列有一个很大的缺点就是: 系统的吞吐量会有所下降 。
6.1、通过RabbitMQ的web后台管理界面设置HA 镜像模式队列
6.2、通过HA策略命令设置HA 镜像模式队列
HA策略设置命令模版:rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]