服务器版本centos6.8
一、先安装Erlang
具体安装哪个版本可以对照 http://www.rabbitmq.com/which-erlang.html 如下图:
准备安装RabbitMQ3.7所以这里我安装Erlang 20.3.x版本,我选择yum源安装,参照:https://github.com/rabbitmq/erlang-rpm
1.1 首先在/etc/yum.repos.d路径下创建一个文件rabbitmq-erlang.repo (名称任意以.repo结尾即可)内容如下:
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/6
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
1.2 不通的版本内容不通,可以去上面的网址找对应的内容,接着输入
yum install socat
yum install erlang
如遇到错误
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Setting up Install Process No package socat available. Error: Nothing to do
需要安装并启用 EPEL 源,下载地址:https://fedoraproject.org/wiki/EPEL/zh-cn ,根据操作系统版本下载对应rpm包
下载完成之后
yum install /opt/software/epel-release-latest-6.noarch.rpm
成功之后重新执行 1.2步命令
二、安装RabbitMQ
rpm -ivh /opt/software/rabbitmq-server-3.7.6-1.el6.noarch.rpm
拷贝配置文件模板到/etc/rabbitmq/ 目录下(也可以自己创建)
cp /usr/share/doc/rabbitmq-server-3.7.6/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
编辑拷贝过来的rabbitmq.config配置文件
vi /etc/rabbitmq/rabbitmq.config
打开 {loopback_users, []} 这一行的注释,并删除后面的逗号,目的是允许远程访问
启动RabbitMQ
service rabbitmq-server start
查看RabbitMQ状态
service rabbitmq-server status
设置可视化插件
rabbitmq-plugins enable rabbitmq_management
重启服务
service rabbitmq-server restart
访问 服务ip:15672
默认用户名密码:guest guest
其他命令如下
$ sudo chkconfig rabbitmq-server on # 添加开机启动RabbitMQ服务 $ sudo /sbin/service rabbitmq-server start # 启动服务 $ sudo /sbin/service rabbitmq-server status # 查看服务状态 $ sudo /sbin/service rabbitmq-server stop # 停止服务 # 查看当前所有用户 $ sudo rabbitmqctl list_users # 查看默认guest用户的权限 $ sudo rabbitmqctl list_user_permissions guest # 由于RabbitMQ默认的账号用户名和密码都是guest。为了安全起见, 先删掉默认用户 $ sudo rabbitmqctl delete_user guest # 添加新用户 $ sudo rabbitmqctl add_user username password # 设置用户tag $ sudo rabbitmqctl set_user_tags username administrator # 赋予用户默认vhost的全部操作权限 $ sudo rabbitmqctl set_permissions -p / username ".*" ".*" ".*" # 查看用户的权限 $ sudo rabbitmqctl list_user_permissions username
三、集群配置
3.1设置.erlang.cookie权限
#找到 .erlang.cookie的位置,一般存在与两个位置,这和安装方式有关,我用rpm安装的,如果.gz包安装的会在$home目录下 find / -name ".erlang.cookie" #然后进入到这个目录下,设置写权限 cd /var/lib/rabbitmq/ chmod u+w .erlang.cookie
3.2 修改hosts文件
vi /etc/hosts
192.168.0.107 rabbitmq_node2
192.168.0.105 rabbitmq_node1
需要注意的是hostname要与上面配置rabbtimq_node2一致,修改主机名后重启后消息队列会重新初始化,用户丢失,需要重新添加用户。
3.3下面开始搭建集群
#停止node1上的服务
rabbitmqctl stop_app
#让node2服务加入到node1中,node2需要运行中才行
rabbitmqctl join_cluster rabbit@rabbitmq_node2
重启并查看集群状态
rabbitmqctl start_app
rabbitmqctl cluster_status