1、安装 Erlang

  就想我们编写Java引用程序需要安装 JDK一样,安装 RabbitMQ ,我们也需要安装 Erlang 。

①、下载 erlang 安装包

  将安装包下载到 /home/erlang 目录下。

1 wget http://www.erlang.org/download/otp_src_R16B02.tar.gz

②、解压

1 tar -zxvf otp_src_R16B02.tar.gz

③、编译安装

  首先进入解压的文件目录,然后安装如下插件

  接着设置编译目录为 /usr/local/erlang

  最后执行 make  和 make install 命令即可。

  全部命令步骤为:

1、cd otp_src_R16B02
2、yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel gtk2-devel binutils-devel
3、./configure --prefix=/usr/local/erlang --enable-hipe --enable-threads --enable-smp-support --enable-kernel-poll
4、make
5、make install

④、配置环境变量

  通过 vim /etc/profile 命令进入文件,然后敲入如下代码

  最后通过如下命令使环境变量生效:

source /etc/profile

⑤、验证

  在任意目录下输入 erl 命令,出现如下情况,则 erlang 安装成功:

报错:
wx : wxWidgets not found, wx will NOT be usable 
解决方法:

wget https://netix.dl.sourceforge.net/project/wxwindows/3.0.1/wxWidgets-3.0.1.tar.bz2
 bzip2 -dkv wxWidgets-3.0.1.tar.bz2
 tar -xvf wxWidgets-3.0.1.tar
cd wxWidgets-3.0.1/
./configure --with-opengl --enable-debug --enable-unicode
make && make install

报错:configure: error: OpenGL libraries not available
解决方法:

yum install mesa *

yum install freeglut*

解决报错直接运行 make && make install 来安装wxWidgets

然后在切换到erlang的安装目录下执行make && make install 来安装erlang

2、安装 RabbitMQ

①、下载安装包

  创建 /home/rabbitmq 目录,在该目录下执行如下命令:

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.1.5/rabbitmq-server-3.1.5.tar.gz 

②、解压

tar -zxvf rabbitmq-server-3.1.5.tar.gz

③、编译安装

1 cd rabbitmq-server-3.1.5
2 yum -y install xmlto
3 make
4 make install TARGET_DIR=/opt/mq/rabbitmq SBIN_DIR=/opt/mq/rabbitmq/sbin MAN_DIR=/opt/mq/rabbitmq/man

  将rabbitmq编译到/opt/mq/rabbitmq目录。

④、开启 web 插件

1 cd /opt/mq/rabbitmq/sbin
2 mkdir /etc/rabbitmq/
3 ./rabbitmq-plugins enable rabbitmq_management

3、启动和关闭RabbitMQ

1 启动监控管理器:rabbitmq-plugins enable rabbitmq_management
2 关闭监控管理器:rabbitmq-plugins disable rabbitmq_management
3 启动rabbitmq:rabbitmq-service start
4 关闭rabbitmq:rabbitmq-service stop
5 查看所有的队列:rabbitmqctl list_queues
6 清除所有的队列:rabbitmqctl reset
7 关闭应用:rabbitmqctl stop_app
8 启动应用:rabbitmqctl start_app

  通过第 3 条命令启动rabbitmq 服务,然后在浏览器上输入

ip:15672

  出现如下界面即可。其中 ip 是安装 rabbitmq 的机器ip地址,15672 是rabbitmq的默认端口。

  ps:如果不能打开如下画面,可能是防火墙没有关闭。centos6 关闭防火墙命令:

关闭命令:  service iptables stop
永久关闭防火墙:chkconfig iptables off
查看防火墙状态:service iptables status

  默认用户名和密码都是 guest。我们可以用 guest 是不能登陆的,需要重新创建用户并赋予角色,可参考链接:https://www.cnblogs.com/zongyl/p/5913808.html

默认用户guest 只允许localhost登录。

so... 我们自己建立用户

1. 用户管理

用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。

相应的命令

(1) 新增一个用户

rabbitmqctl  add_user  Username  Password

(2) 删除一个用户

rabbitmqctl  delete_user  Username

(3) 修改用户的密码

rabbitmqctl  change_password  Username  Newpassword

(4) 查看当前用户列表

rabbitmqctl  list_users

2. 用户角色

按照个人理解,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

(1) 超级管理员(administrator)

可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

(2) 监控者(monitoring)

可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

(3) 策略制定者(policymaker)

可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。

与administrator的对比,administrator能看到这些内容

(4) 普通管理者(management)

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

(5) 其他

无法登陆管理控制台,通常就是普通的生产者和消费者。

了解了这些后,就可以根据需要给不同的用户设置不同的角色,以便按需管理。

设置用户角色的命令为:

rabbitmqctl  set_user_tags  User  Tag

User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。

也可以给同一用户设置多个角色,例如

rabbitmqctl  set_user_tags  hncscwc  monitoring  policymaker

3. 用户权限

用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。

例如: 将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。详细请参考官方文档中"How permissions work"部分。

相关命令为:

(1) 设置用户权限

rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP

(2) 查看(指定hostpath)所有用户的权限信息

rabbitmqctl  list_permissions  [-p  VHostPath]

(3) 查看指定用户的权限信息

rabbitmqctl  list_user_permissions  User

(4)  清除用户的权限信息

rabbitmqctl  clear_permissions  [-p VHostPath]  User

centos7 部署rabbitmq的更多相关文章

  1. centos7部署rabbitMq

    目录 一.消息中间件相关知识... 1 1.概述... 1 2.消息中间件的组成... 1 3 消息中间件模式分类... 2 4 消息中间件的优势... 3 5 消息中间件应用场景... 4 6 消息 ...

  2. Centos7部署RabbitMQ的镜像队列集群

    一.背景 在上一章节中,我们学会了如何搭建一个单节点的RabbitMQ服务器,但是单节点的RabbitMQ不可靠,如果单节点挂掉,则会导致消息队列不可用.此处我们搭建一个3个节点的RabbitMQ集群 ...

  3. Springboot 1.5.x 集成基于Centos7的RabbitMQ集群安装及配置

    RabbitMQ简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件). RabbitMQ是一套开源(MPL)的消息队列服务软件,是由LShift提供的一 ...

  4. Linux下安装部署RabbitMQ

    在写正文之前先啰嗦几句,RabbitMQ(消息队列)的安装让我费了半天劲啊!足足折腾了2天,最后写下这篇文章总结下,其实很简单,但是你找不到错在哪个环节就会费很多无用功,如果你也遇到了安装erl后 怎 ...

  5. [原]CentOS7部署osm2pgsql

    转载请注明原作者(think8848)和出处(http://think8848.cnblogs.com) 部署Postgresql和部署PostGis请参考前两篇文章 本文主要参考GitHub上osm ...

  6. centos7 部署ssserver

    centos7 部署shadowsocks服务端 为什么要选centos7? 以后centos7 肯定是主流,在不重要的环境还是尽量使用新系统吧 centos7 的坑 默认可能会有firewall 或 ...

  7. RabbitMQ消息队列系列教程(二)Windows下安装和部署RabbitMQ

    摘要 本篇经验将和大家介绍Windows下安装和部署RabbitMQ消息队列服务器,希望对大家的工作和学习有所帮助! 目录 一.Erlang语言环境的搭建 二.RabbitMQ服务环境的搭建 三.Ra ...

  8. RabbitMQ系列(五)使用Docker部署RabbitMQ集群

    概述 本文重点介绍的Docker的使用,以及如何部署RabbitMQ集群,最基础的Docker安装,本文不做过多的描述,读者可以自行度娘. Windows10上Docker的安装 因为本人用的是Win ...

  9. 超简单,Centos7 安装 rabbitMQ

    首先声明,本人是Linux新手一枚.经历了在阿里云Centos上部署rabbitMQ与重装的痛苦经历,后多方查找终于找到了简单方法.Linux高人来说请跳过本篇文章,新手可以试试. 1.设置Cento ...

随机推荐

  1. Java入门系列 Lambda表达式

    https://blog.csdn.net/bitcarmanlee/article/details/70195403

  2. 海南医院帆软报表 最终版本SQL

    1. 挂号微信收入明细 -- WANTED-1283 门诊查询统计报表-挂号微信收入明细 select p.name as patientName, -- 患者姓名 p.birthday, -- 出生 ...

  3. 使用java poi解析表格

    @Test public void poi() throws Exception { InputStream inputStream=new FileInputStream("C:\\Use ...

  4. 三十二、Linux 进程与信号——不可靠信号

    32.1 不可靠信号问题 发生信号时关联动作被重置为默认设置 信号可能丢失 程序片段 在进入 sig_int 与再次调用 signal 之间发生的 SIGINT 信号将不会捕获 导致进程终止 以前版本 ...

  5. 三层结构与MVC

    实验室学弟突然又谈到了三层结构与MVC的话题,想想还是有必要整理一下这些个基本概念,且也纠正自己之前对二者的概念混淆,乃至将其错误思想指导于开发中. 关键词:三层结构(三层架构).MVC框架(思想). ...

  6. CSS公共清除浏览器默认样式

    /*Vue隐藏*/ [v-cloak] { display: none; } /*清除样式*/ body, ol, ul, dl, li, dt, dd, h1, h2, h3, h4, h5, h6 ...

  7. 【转载】java abstract class和interface的区别

    转载:https://blog.csdn.net/b271737818/article/details/3950245 在Java语言中,abstract class和interface是支持抽象类定 ...

  8. 【父元素parent】【子元素children】【同胞siblings】【过滤】

    1.父元素 $("span").parent()           //定位到span的父元素 $("span").parents()          // ...

  9. STL之permutation/ equal_range/ binary_range学习

    1,is_permutation 函数,判断其中一个序列是不是另外一个序列的全排列. 包括四个参数,前两个是第一个数组需要判断的起始位置和终止位置.后两个是第二个数组需要判断的起始位置和终止位置. # ...

  10. 错误整理:No plugin found for prefix 'jetty' in the current project and in the plugin groups

    在maven进行jetty的调试中出现错误: [ERROR] No plugin found for prefix 'jetty' in the current project and in the ...