rabbitmq rpm安装

一、基础环境设置


## 实验说明
host1作为master

操作系统    centos7.5
host1   192.168.4.61
host2   192.168.4.62




## 设置hosts

[root@oldboy mq]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.4.61 oldboy
192.168.4.62 liudada


## 创建环境目录:

mkdir /server/mq -p
cd /server/mq

二、安装erlang

host1和host2上安装

下载
wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-21.3.8.7-1.el7.x86_64.rpm/download.rpm

安装
yum localinstall -y erlang-21.3.8.7-1.el7.x86_64.rpm

验证erlang:

[root@liudada mq]# erl
Erlang/OTP 21 [erts-10.3.5.5] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Eshell V10.3.5.5  (abort with ^G)
1> 

二、 安装rabbitmq

host1和host2上安装

下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.18/rabbitmq-server-3.7.18-1.el7.noarch.rpm
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

用yum安装
yum install -y rabbitmq-server-3.7.18-1.el7.noarch.rpm

用rpm安装可能会报错

[root@liudada mq]# rpm -ivh rabbitmq-server-3.7.18-1.el7.noarch.rpm 
warning: rabbitmq-server-3.7.18-1.el7.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
    socat is needed by rabbitmq-server-3.7.18-1.el7.noarch

解决:
    yum install socat -y

==host1做上执行==

启动rabbitmq
    rabbitmq-server -detached
    
查看rabbitmq状态
    rabbitmqctl status
    
host1启动web管理界面
    rabbitmq-plugins enable rabbitmq-managemen

四、集群部署:

4.1、同步cookie(host1作为master,所以在host1操作同步)

设置ssh-key
[root@oldboy mq]# ssh-keygen -t rsa


同步sshkey到host2
[root@oldboy mq]# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.4.62


同步cookie到host2
[root@oldboy mq]# scp /var/lib/rabbitmq/.erlang.cookie 192.168.4.62:/var/lib/rabbitmq/

4.2、host2更改所属权限

查看所属
[root@liudada mq]# ls -al /var/lib/rabbitmq/
total 8
drwxr-xr-x   3 rabbitmq rabbitmq   42 Oct  2 15:21 .
drwxr-xr-x. 33 root     root     4096 Oct  2 15:17 ..
-r--------   1 root     root       20 Oct  2 15:21 .erlang.cookie
drwxr-x---   2 rabbitmq rabbitmq    6 Sep 17 12:00 mnesia

更改所属
[root@liudada mq]# chown -R rabbitmq.rabbitmq /var/lib/rabbitmq/.erlang.cookie 


[root@liudada mq]# ls -al /var/lib/rabbitmq/.erlang.cookie 
-r-------- 1 rabbitmq rabbitmq 20 Oct  2 15:21 /var/lib/rabbitmq/.erlang.cookie

4.3、host2启动rabbitmq:

    systemctl start rabbitmq-server

4.4、加入集群:

    关闭应用:       rabbitmqctl stop_app
    设置为原始状态:rabbitmqctl reset 
    加入集群:       rabbitmqctl join_cluster rabbit@fz-rabbitMQ01 
    启动应用:       rabbitmqctl start_app

4.5、启动web管理界面

    查看RabbitMQ启用插件列表命令
        rabbitmq-plugins list  
    启用RabbitMQ WEB管理界面
        rabbitmq-plugins enable rabbitmq_management 

4.6、查看集群状态:

[root@oldboy mq]#  rabbitmqctl cluster_status
Cluster status of node rabbit@oldboy ...
[{nodes,[{disc,[rabbit@liudada,rabbit@oldboy]}]},
 {running_nodes,[rabbit@liudada,rabbit@oldboy]},
 {cluster_name,<<"rabbit@oldboy">>},
 {partitions,[]},
 {alarms,[{rabbit@liudada,[]},{rabbit@oldboy,[]}]}]

4.7、创建管理用户

    创建用户:admin密码admin
                    rabbitmqctl add_user admin admin
    设置admin用户角色
                    rabbitmqctl set_user_tags admin administrator
    设置admin用户权限
                    rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

4.8、访问

192.168.4.62:15675

用admin登录后查看集群几点

image

设置镜像队列策略

在任意一个节点上执行:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。

完成这 6 个步骤后,RabbitMQ 高可用集群就已经搭建好了,最后一个步骤就是搭建均衡器。
***
怎样仅仅关闭应用而不关闭整个节点呢?

因为rabbitmq-server一起启动了节点和应用,它预先设置RabbitMQ应用为standalone模式。要将一个节点加入到现有的集群中,你需要停止这个应用并将节点设置为原始状态,然后就为加入集群准备好了。如果使用./rabbitmqctl stop,应用和节点都将被关闭。

常用命令:

服务器启动与关闭
    启动:             rabbitmq-server –detached
    关闭:         rabbitmqctl stop

加入集群:
    关闭应用:       rabbitmqctl stop_app
    设置为原始状态:rabbitmqctl reset 
    加入集群:       rabbitmqctl join_cluster rabbit@fz-rabbitMQ01 
    启动应用:       rabbitmqctl start_app

用户管理:
    查看当前用户:
                    rabbitmqctl list_users
    查看guest用户权限:
                    rabbitmqctl list_user_permissions guest
    创建用户:admin密码admin
                    rabbitmqctl add_user admin admin
    设置admin用户角色
                    rabbitmqctl set_user_tags admin administrator
    设置admin用户权限
                    rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
    删除用户
                    rabbitmqctl delete_user Username
    修改用户的密码
                    rabbitmqctl change_password Username Newpassword
                    
                    
删除节点

我们也可以远程删除节点,例如,在处理无响应的节点时,这很有用
比如:我们在节点rabbit@rabbit2上把rabbit@rabbit1从集群中移除

        [root@rabbit1 ~]# rabbitmqctl stop_app
        Stopping rabbit application on node rabbit@rabbit1 ...
 
        [root@rabbit2 ~]# rabbitmqctl forget_cluster_node rabbit@rabbit1
        Removing node rabbit@rabbit1 from the cluster


请注意,rabbit1仍然认为它与rabbit2集群 ,并试图启动它将导致错误。我们需要重新设置才能重新启动。

        [root@rabbit1 ~]# rabbitmqctl reset     #必须要重置
         Resetting node rabbit@rabbit1 ...
 
        [root@rabbit1 ~]# rabbitmqctl start_app
        Starting node rabbit@rabbit1 ...
        completed with 0 plugins.

版权声明:本文为liuyunf原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/liuyunf/p/11764700.html