RabbitMQ安装、安装Erlang、RabbitMQ集群环境搭建、管理

提示:在正式安装RabbitMQ之前,需要先安装一下erlang,确定RabbitMQ Erlang Version对应关系


RabbitMq安装

1、安装依赖

yum install socat -y

2、安装Erlang、安装RabbitMQ

https://github.com/rabbitmq/erlang-rpm/releases/download/v23.1/erlang-23.1-1.el7.x86_64.rpm
rpm -ivh erlang-23.1-1.el7.x86_64.rpm --force

https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-3.8.14-1.el7.noarch.rpm
rpm -ivh rabbitmq-server-3.8.14-1.el7.noarch.rpm

或者两个一起安装
rpm -ivh erlang-23.1-1.el7.x86_64.rpm rabbitmq-server-3.8.14-1.el7.noarch.rpm

systemctl list-unit-files | grep rabbitmq-server

rabbitmq安装到了:/usr/lib/rabbitmq

cd /usr/lib/rabbitmq/bin

3、查看自带插件

rabbitmq-plugins list

4、启用RabbitMQ的管理插件

rabbitmq-plugins enable rabbitmq_management

5、开启RabbitMQ

systemctl start rabbitmq-server
或
rabbitmq-server
或
#或者后台启动
rabbitmq-server -detached

6、查看rabbitmq运行的进程

ps aux | grep rabbitmq
如果epmd 不是在拥有者rabbitmq的时候使用,然后结束进程,在重新启动rabbitmq
ps aux|grep epmd

7、访问

http://ip:15672
# 该用户只能本机登录
账号(默认):guest
密码(默认):guest

# 查看用户列表
rabbitmqctl help list_users
rabbitmqctl list_users

# 添加用户
rabbitmqctl help add_user
rabbitmqctl add_user zkc zkc

# 给用户设置标签
rabbitmqctl help set_user_tags
rabbitmqctl set_user_tags zkc administrator

# 给用户添加权限
给zkc用户在虚拟主机"/"上的配置、写、读的权限
rabbitmqctl set_permissions --vhost / zkc ".*" ".*" ".*"

# 查看用户权限
rabbitmqctl list_user_permissions zkc


# 默认日志
/var/log/rabbitmq
# 数据
/var/lib/rabbitmq/mnesia

8、常用命令

# 前台启动Erlang VM和RabbitMQ 
rabbitmq-server 

# 后台启动 
rabbitmq-server -detached

# 停止RabbitMQ和Erlang VM 
rabbitmqctl stop

# 查看所有队列 
rabbitmqctl list_queues

# 查看所有虚拟主机 
rabbitmqctl list_vhosts
或者
rabbitmqctl list_vhosts --formatter pretty_table

# 在Erlang VM运行的情况下启动RabbitMQ应用 
rabbitmqctl start_app 
rabbitmqctl stop_app

# 查看节点状态 
rabbitmqctl status

# 查看所有可用的插件 
rabbitmq-plugins list

# 启用插件 
rabbitmq-plugins enable <plugin-name>

# 停用插件
rabbitmq-plugins disable <plugin-name>

# 添加用户 
rabbitmqctl add_user zhangsan 123456

# 列出所有用户
rabbitmqctl list_users

# 删除用户
rabbitmqctl delete_user zhangsan

# 给用户设置标签
rabbitmqctl set_user_tags zhangsan administrator


# 给用户添加权限,给username用户在虚拟主机"/"上的配置、写、读的权限
rabbitmqctl set_permissions --vhost / zhangsan ".*" ".*" ".*" ".*"
#写、读的权限
rabbitmqctl set_permissions --vhost / zhangsan "^$" ".*" ".*"


# 清除用户权限 
rabbitmqctl clear_permissions zhangsan

# 列出用户权限 
rabbitmqctl list_user_permissions zhangsan

# 修改密码
rabbitmqctl change_password username newpassword

# 创建虚拟主机
rabbitmqctl add_vhost vhostpath

# 列出所以虚拟主机
rabbitmqctl list_vhosts

# 列出虚拟主机上的所有权限
rabbitmqctl list_permissions -p vhostpath

# 删除虚拟主机
rabbitmqctl delete_vhost vhost vhostpath

# 移除所有数据,要在 rabbitmqctl stop_app 之后使用
rabbitmqctl reset

# 查看交换机
rabbitmqctl list_exchanges
rabbitmqctl list_exchanges --formatter pretty_table

# 查看交换机绑定的队列
rabbitmqctl list_bindings
rabbitmqctl list_bindings --formatter pretty_table
TagCapabilities
(None)没有访问management插件的权限
management可以使用消息协议做任何操作的权限,加上:
1. 可以使用AMQP协议登录的虚拟主机的权限
2. 查看它们能登录的所有虚拟主机中所有队列、交换器和绑定的权限
3. 查看和关闭它们自己的通道和连接的权限
4. 查看它们能访问的虚拟主机中的全局统计信息,包括其他用户的活动
policymaker所有management标签可以做的,加上:
1. 在它们能通过AMQP协议登录的虚拟主机上,查看、创建和删除策略以及虚拟主机参数的权限
monitoring所有management能做的,加上:
1. 列出所有的虚拟主机,包括列出不能使用消息协议访问的虚拟主机的权限
2. 查看其他用户连接和通道的权限
3. 查看节点级别的数据如内存使用和集群的权限
4. 查看真正的全局所有虚拟主机统计数据的权限
administrator所有policymaker和monitoring能做的,加上:
1. 创建删除虚拟主机的权限
2. 查看、创建和删除用户的权限
3. 查看、创建和删除权限的权限
4. 关闭其他用户连接的权限

集群搭建、管理

#三台主机头安装:
#安装依赖
yum install socat -y

#安装Erlang
https://github.com/rabbitmq/erlang-rpm/releases/download/v23.1/erlang-23.1-1.el7.x86_64.rpm
rpm -ivh erlang-23.1-1.el7.x86_64.rpm

#安装RabbitMQ
https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-3.8.14-1.el7.noarch.rpm
rpm -ivh rabbitmq-server-3.8.14-1.el7.noarch.rpm

#或者两个一起安装
rpm -ivh erlang-23.1-1.el7.x86_64.rpm rabbitmq-server-3.8.14-1.el7.noarch.rpm

# 启用RabbitMQ的管理插件
rabbitmq-plugins enable rabbitmq_management

# 默认日志
/var/log/rabbitmq
# 数据
/var/lib/rabbitmq/mnesia

#我们首先在启动单机版RabbitMQ,以生成Cookie文件( /var/lib/rabbitmq/.erlang.cookie):
rabbitmq-server

#开始准备同步 .erlang.cookie 文件。RabbitMQ的集群依赖Erlang的分布式特性,需要保持Erlang Cookie一致才能实现集群节点的认证和通信,我们直接使用scp命令从第一台主机远程传输到2、3台主机上。
scp /var/lib/rabbitmq/.erlang.cookie ip:/var/lib/rabbitmq/ 
scp /var/lib/rabbitmq/.erlang.cookie ip:/var/lib/rabbitmq/ 

# 三台主机都修改
chown rabbitmq:rabbitmq .erlang.cookie

#三台主机都启动
systemctl start rabbitmq-server
或
rabbitmq-server -detached

# 查看rabbitmq运行的进程
ps aux | grep rabbitmq
如果epmd 不是在拥有者rabbitmq的时候使用,然后结束进程,在重新启动rabbitmq
ps aux|grep epmd

# 停止RabbitMQ和Erlang VM
rabbitmqctl stop

# 查看集群信息
rabbitmqctl cluster_status

# 在2、3台服务器上操作
    # 停止Erlang VM上运行的RabbitMQ应用,保持Erlang VM的运行 
    rabbitmqctl stop_app
    # 移除当前RabbitMQ虚拟主机中的所有数据:重置 
    rabbitmqctl reset
    # 将当前RabbitMQ的主机加入到rabbit@node2这个虚拟主机的集群中。一个节点也是集群。 
    rabbitmqctl join_cluster rabbit@10-9-104-212
    # 启动当前Erlang VM上的RabbitMQ应用 
    rabbitmqctl start_app
    
    # 注意
        #1. rabbit@10-9-104-212 表示RabbitMQ节点名称,默认前缀就是 rabbit , @ 之后是当前虚拟主机所在的物理主机 hostname 。 
        #2. 注意检查下hostname要可以相互ping通 
        #3. join_cluster默认是使用disk模式,后面可以加入参数--ram启用内存模式
        
        # 如果不三台主机hostname不能相互ping通 ,进行如下操作
        # 集群节点间需能互相访问,故每个集群节点的hosts文件应包含集群内所有节点的信息以保证互相解析
        # 这里的hostname1和hostname2可以理解为三台主机中的其他两台的hostname,三个主机都要设置
        vim /etc/hosts
        IP    hostname1
        IP    hostname2



# 将虚拟主机(RabbitMQ的节点)rabbit@node3从集群中移除,但是rabbit@node3还保留集群信 息
# 还是会尝试加入集群,但是会被拒绝。可以重置rabbit@node3节点。 
    #在node3上执行
    rabbitmqctl stop_app
    # 然后在node1在去除node3节点
    rabbitmqctl forget_cluster_node rabbit@node3
    
    
# node3去除后(之前已经执行了  rabbitmqctl stop_app )
# 因为在node1去除节点node3后node3这边不知道,需要在 执行 rabbitmqctl reset 后 才能在执行 rabbitmqctl start_app
rabbitmqctl reset
rabbitmqctl start_app


#修改集群名称(任意节点执行都可以) 
rabbitmqctl set_cluster_name rabbitmq3
集群中跨服务器修改节点名称
rabbitmqctl --node rabbit@10-9-165-193 set_cluster_name rabbitmq3


# 集群中加如节点
    # 停止Erlang VM上运行的RabbitMQ应用,保持Erlang VM的运行 
    rabbitmqctl stop_app
    # 移除当前RabbitMQ虚拟主机中的所有数据:重置 
    rabbitmqctl reset
    # 将当前RabbitMQ的主机加入到rabbit@node2这个虚拟主机的集群中。一个节点也是集群。 
    rabbitmqctl join_cluster rabbit@10-9-104-212
    # 启动当前Erlang VM上的RabbitMQ应用 
    rabbitmqctl start_app

启用RabbitMQ的管理插件

rabbitmq-plugins enable rabbitmq_management

启动插件后才能统计到下图数据:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值