环境
注意:主机名不能有符号
第一步:安装宿主环境Erlang
Erlang Version 要求:https://www.rabbitmq.com/which-erlang.html#intro
Erlang官网:http://www.erlang.org/
Erlang下载:http://www.erlang.org/downloads
RabbitMQ提供Erlang安装源:https://github.com/rabbitmq/erlang-rpm
cat <<EOF >/etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
EOF
yum install -y erlang
第二步:安装RabbitMQ
RabbitMQ 3.7.13下载:https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.7.13
1.下载RPM包并安装
yum install -y wget
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.13/rabbitmq-server-3.7.13-1.el7.noarch.rpm
yum install -y rabbitmq-server-3.7.13-1.el7.noarch.rpm
2.然后运行RabbitMQ实例
rabbitmq-server -detached
3.打开管理界面插件
## 1.打开管理界面插件
rabbitmq-plugins enable rabbitmq_management
## 2.添加账号:
rabbitmqctl add_user admin xiaoliu
## 3.添加 权限tag
rabbitmqctl set_user_tags admin administrator
第三步:配置集群
1.配置erlang.cookie(保证两个节点的此文件内容一致)
这个文件是erlang用来发现和互连的基础。我们需要做的很简单,将两个节点中的.erlang.cookie设置成一样的。这是erlang的约定,一样的cookie hash key他认为是合法和正确的连接。
cat /var/lib/rabbitmq/.erlang.cookie
vim /var/lib/rabbitmq/.erlang.cookie
2.配置hosts
Erlang会使用hosts文件里的配置去发现节点
echo '192.168.20.31 mqcluster01' >> /etc/hosts
echo '192.168.20.32 mqcluster02' >> /etc/hosts
echo '192.168.20.33 mqcluster03' >> /etc/hosts
echo '192.168.20.34 mqcluster04' >> /etc/hosts
cat /etc/hosts
3.选择节点centos181001加入到节点centos181002
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@mqcluster01
## 指定新加入节点为RAM类型
## rabbitmqctl join_cluster rabbit@centos181002 --ram
rabbitmqctl start_app
4.将centos181001更改为 RAM 类型
在RabbitMQ集群中的节点只有两种类型:内存节点/磁盘节点,单节点系统只运行磁盘类型的节点。而在集群中,可以选择配置部分节点为内存节点。
内存节点将所有的队列,交换器,绑定关系,用户,权限,和vhost的元数据信息保存在内存中。而磁盘节点将这些信息保存在磁盘中,但是内存节点的性能更高,为了保证集群的高可用性,必须保证集群中有两个以上的磁盘节点,来保证当有一个磁盘节点崩溃了,集群还能对外提供访问服务。
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app
附录:端口说明
15672 是管理界面用的
25672 是集群之间使用的端口
4369 是erlang进程epmd用来做node连接的
5672 AMQP端口
附录:常用命令:
#### 查看节点信息
rabbitmqctl status
## 查看集群信息
rabbitmqctl cluster_status
#### 用户相关操作
## 查看已有用户及用户角色
rabbitmqctl list_users
## 修改密码
rabbitmqctl change_password userName newPassword
## 删除用户
rabbitmqctl delete_user username
## 服务器启动与关闭
## 启动
rabbitmq-server -detached
## 关闭
rabbitmqctl stop
## 若单机有多个实例,则在rabbitmqctlh后加–n 指定名称
网友评论