RabbitMQ安装

一、RabbitMQ简单介绍

RabbitMQ就是当前最主流的消息中间件之一。RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

在目前分布式的大环境下,成为非常常用的消息队列,以下详细说明怎么在centos7 上安装部署rabbitmq,并列举简单的维护,方便运维同学能更好的维护rabbitmq的正常运行。由于一般生产环境,不管是erlang还是 rabbitmq都不能随便进行版本升级,每次升级都是要谨慎的,所以这里推荐都使用源码安装,这样就固定了版本,不会出现通过yum安装的话,不小心升级了版本导致服务故障等的问题。当然yum安装会更简单,这里就不做介绍,有兴趣的参考官方文档即可。

二、Rabbit安装

1、安装准备
版本对照

安装之前,需要去官网查看一下rabbitmq版本对erlang版本的一个支持情况,官网地址:http://www.rabbitmq.com/which-erlang.html
在这里插入图片描述
这里我用的3.9.5

Rabbit安装包下载

在官网上,直接下载该版本的安装包,为了方便安装,最好直接使用编译好的二进制文件包,即开即用,不用进行复杂的yum配置等。具体可以参考官方文档:http://www.rabbitmq.com/install-generic-unix.html

2、erlang安装
#解压到:/usr/local/server
tar -zxvf otp_src_24.2.tar.gz -C /usr/local/server
​
#这里要新建一个erlang文件夹,因为erlang编译安装默认是装在/usr/local下的bin和lib中,这里我们将他统一装到/usr/local/server/erlang中,方便查找和使用。
mkdir /usr/local/server/erlang
​
# 在编译之前,必须安装以下依赖包
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
​
#进入解压的otp_src_24.2中
cd /usr/local/server/otp_src_24.2/
​
#配置erlang的安装路径
./configure --prefix=/usr/local/server/erlang
​
#直接执行make && make install 进行编译安装
make && make install

安装后,在 /usr/local/server/erlang 中就会出现.

# 配置环境变量,添加下列配置
vi /etc/profile
​
# ERLANG_HOME=/usr/local/server/erlang
# export PATH=$PATH:$ERLANG_HOME/bin
# export ERLANG_HOME#刷新环境变量
source /etc/profile

测试是否安装成功:erl 进入 halt().退出
在这里插入图片描述

3、RabbitMQ安装
解压安装
#解压安装包到 /usr/local/server/
tar -xvf rabbitmq-server-generic-unix-3.9.5.tar.xz -C /usr/local/server/
​
#修改环境变量
vi /etc/profile
​
#添加配置
export PATH=$PATH:/usr/local/server/rabbitmq_server-3.9.5/sbin
​
#刷新环境变量
source /etc/profile
rabbit.config添加

默认rabbitmq是没有配置文件的,需要去官方github上,复制一个配置文件模版过来。添加rabbit.config 文件,官网样例地址,并复制rabbitmq.conf.example官方提供的样例文件。
这里我把复制的内容保存到Rabbit的安装目录/etc/rabbitmq下,如:/usr/local/server/rabbitmq_server-3.9.5/etc/rabbitmq

服务启动准备(云服务器忽略)
#添加web管理插件
rabbitmq-plugins enable rabbitmq_management
​
#启动rabbit服务
rabbitmq-server -detached
​
#防火墙端口(5672和15672端口)
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload   #重启防火墙

http://192.168.1.47:15672/#/
在这里插入图片描述

使用默认的用户 guest / guest (此也为管理员用户)登陆,会发现无法登陆,报错:User can only log in via localhost。那是因为默认是限制了guest用户只能在本机登陆,也就是只能登陆localhost:15672。可以通过修改配置文件rabbitmq.conf,取消这个限制: loopback_users这个项就是控制访问的,如果只是取消guest用户的话,只需要loopback_users.guest = false ,服务重启后就可以登入。

三、常用命令

#服务启动停止:
​
rabbitmq-server -detached   #启动service rabbitmq-server restar  #重启
​
rabbitmqctl stop    #停止
​
rabbitmqctl status  #查看状态
​
​
#插件管理:
​
rabbitmq-plugins list   #插件列表 
​
rabbitmq-plugins enable {XXX}   #启动插件(XXX为插件名)
​
rabbitmq-plugins disable {XXX}  #停用插件
​
​
#用户管理:
​
rabbitmqctl add_user {username} {password}  #添加用户
​
rabbitmqctl delete_user {username}  #删除用户 
​
rabbitmqctl change_password {username} {newpassword}    #修改密码#设置用户角色,user有5种 tags :
#   management :访问 management plugin;
#   policymaker :访问 management plugin 和管理自己 vhosts 的策略和参数;
#   monitoring :访问 management plugin 和查看所有配置和通道以及节点信息;
#   administrator :一切权限;
#   None :无配置
rabbitmqctl set_user_tags {username} {tag}  
​
rabbitmqctl list_users  #列出用户
​
​
#权限管理
​
rabbitmqctl list_permissions    #列出所有用户权限
​
rabbitmqctl list_user_permissions {username}    #查看制定用户权限
​
rabbitmqctl clear_permissions [-p vhostpath] {username} #清除用户权限
​
rabbitmqctl set_permissions [-p vhostpath] {username} conf write read   #设置用户权限
#   conf: 一个正则匹配哪些资源能被该用户访问 
#   write:一个正则匹配哪些资源能被该用户写入 
#   read:一个正则匹配哪些资源能被该用户读取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rainbowcheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值