装备安装包
在rabbitmq安装之前我们先检查Linux环境下是否有Erlang环境,因为rabbitmq依赖Erlang语言环境
Erlang :otp_src_21.2.tar.gz 官网下载地址Downloads - Erlang/OTP
RabbitMQ:rabbitmq-server-3.7.10-1.el7.noarch.rpm 官网下载地址Downloading and Installing RabbitMQ — RabbitMQ
1,开始安装Erlang环境
1),首先检查Linux是否有erlang环境
[root@localhost ~]# erl
我们开始安装erlang,首先将两个安装包拷贝到服务器中
2)安装GCC GCC-C++ Openssl等模块,安装过就不需要安装了
yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
3)安装驱动unixODBC
yum install unixODBC unixODBC-devel
4)解压erlang安装包
tar -zxvf otp_src_21.2.tar.gz
进入文件夹中
cd otp_src_21.2
5)进行编译配置
如果没有Jdk,或者就是新的Linux环境用如下命令:
./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll --without-javac
如果有JDK环境用上面或者下面命令(建议直接用上面命令):
./configure --prefix=/usr/local/erlang
其中APPLICATIONS DISABLED 标示是必须要安装的,另外两个项目可以忽略,我们上上面--without-javac忽略了java编译
出现这个就算配置成功了
6)编译安装
./configure --prefix=/usr/local/erlang
7)将erlang的启动软链到/usr/local/bin/下(比较偷懒的方法)
ln -s /usr/local/erlang/bin/erl /usr/local/bin/
也可以配置erlang环境
打开环境配置文件:
vim /etc/profile
追加新的环境配置:
export ERLANG_HOME=/usr/local/erlang
export PATH=$PATH:$ERLANG_HOME/bin
source /etc/profile
8)测试
安装成功
3安装RabbitMQ
退回到安装目录
yum install rabbitmq-server-3.7.10-1.el7.noarch.rpm
出现错误,提示需要依赖erlang19.3,但是我们明明安装的事21.2
后来查到大神的解释和解决方法,博客如下:
CentOS安装新版RabbitMQ解决Erlang 19.3版本依赖 - 简书
通过yum等软件仓库都可以直接安装RabbitMQ,但版本一般都较为保守。
RabbitMQ官网提供了新版的rpm包(http://www.rabbitmq.com/download.html),但是安装的时候会提示需要erlang版本>=19.3,然而默认yum仓库中的版本较低。
其实RabbitMQ在github上有提供新的erlang包(https://github.com/rabbitmq/erlang-rpm)
也可以直接加到yum源中
vim /etc/yum.repos.d/rabbitmq-erlang.repo
[rabbitmq-erlang]
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq/rpm/erlang/20/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
yum clean all
yum makecache
解决完了之后
yum install rabbitmq-server-3.7.10-1.el7.noarch.rpm
依赖y到最后
启动RabbitMQ服务
service rabbitmq-server start
状态查看
rabbitmqctl status
启用插件 (图像化界面)
rabbitmq-plugins enable rabbitmq_management
重启服务
service rabbitmq-server restart
添加帐号:username密码:passwd
rabbitmqctl add_user username passwd
赋予角色 RabbitMQ的用户角色分类:
注:此处参照博客RabbitMQ用户角色及权限控制_rabbitmq 权限_zyz511919766的博客-CSDN博客
- None
不能访问 management plugin
- Management
用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动。
- Policymaker
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters
- Monitoring
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息
- Administrator
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections
rabbitmqctl set_user_tags username administrator
设置权限
对何种资源具有配置、写、读的权限通过正则表达式来匹配,具体命令如下:
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
其中,<conf> <write> <read>的位置分别用正则表达式来匹配特定的资源,如'^(amq\.gen.*|amq\.default)$'可以匹配server生成的和默认的exchange,'^$'不匹配任何资源
rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
- 启动图像化界面
成功