一 rabbitmq 简介

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

在安装rabbitmq的时候需要注意rabbitmq 和erlang版本的关系,如果两者关系不一一对应的话,那么会导致出错的。

rabbitmq 版本和 erlang 的关系

我们接下来的安装的版本和环境是:

  • 系统平台:CentOS 7
  • erlang版本:21.2
  • rabbit-server版本:3.7.12

rabbit-server 默认使用的端口 :

5672(AMQP端口) 和15672(web),还有其他不常用端口未列出,见官网。

如在公网上访问,需要开放这两个端口。

二 erlang 安装

  • 2.1 安装依赖包
yum -y install make gcc gcc-c++ m4 ncurses-devel openssl-devel unixODBC-devel
  • 2.2 下载erlang依赖包
cd  /tmp && wget http://erlang.org/download/otp_src_21.2.tar.gz
  • 2.3 解压
tar xzf otp_src_21.2.tar.gz
  • 2.4 创建文件夹
mkdir /usr/local/erlang
  • 2.5 编译并安装erlang
cd otp_src_21.2
./configure --prefix=/usr/local/erlang --without-javac
make && make install
  • 2.6 添加环境变量
vi + /etc/profile
# 添加以下内容
export PATH=$PATH:/usr/local/erlang/bin
  • 2.7 让环境变量生效
source /etc/profile
  • 2.8 检验安装
erl -version
# 能够正确输出下面的内容表示安装完成
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.2

三 rabbitmq rpm安装 (二进制安装和rpm安装二选一)

安装rabbitmq前必须先安装符合要求的erlang

  • 3.1 下载RabbitMQ安装包。
cd /tmp &&  wget  https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.12/rabbitmq-server-3.7.12-1.el7.noarch.rpm
  • 3.2 导入签名密钥。
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
  • 3.3 安装 socat
yum install socat -y
  • 3.3 安装RabbitMQ Server。
yum install  rabbitmq-server-3.7.12-1.el7.noarch.rpm

如果在此遇到的错误见文章第七点显示的错误收录

  • 3.4 允许RabbitMQ开机自启动。
systemctl enable rabbitmq-server
  • 3.5 启动RabbitMQ。
systemctl start rabbitmq-server
  • 3.6 暂停RabbitMQ。
systemctl stop rabbitmq-server

四 rabbitmq 二进制安装(rpm 安装和二进制安装二选一)

安装rabbitmq前必须先安装符合要求的erlang

  • 4.1 下载rabbitmq 二进制安装
cd /tmp && wget   https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.12/rabbitmq-server-generic-unix-3.7.12.tar.xz
  • 4.2 解压
tar -xf  rabbitmq-server*.tar.xz
  • 4.3 移动到指定路径
mv  /tmp/rabbitmq_server-3.7.12  /usr/local/rabbitmq_server
  • 4.4 添加环境变量
vi + /etc/profile
# 添加以下内容
export PATH=$PATH:/usr/local/rabbitmq_server/sbin
  • 4.5 环境变量生效
source /etc/profile
  • 4.6 启动rabbitmq server
rabbitmq-server
  • 4.7 后台启动
rabbitmq-server -detached
  • 4.8 关闭rabbitmq
rabbitmqctl shutdown
  • 4.9 创建配置文件

在 $ RABBITMQ_HOME 的目录下创建

#rabbitmq 配置文件
touch ./etc/rabbitmq/rabbitmq.conf
#rabbitmq 环境变量文件
touch ./etc/rabbitmq/rabbitmq-env.conf
  • 4.10 设定 rabbitmq的家目录路径
vim ./sbin/rabbitmq-defaults
# 修改 SYS_PREFIX =
SYS_PREFIX =rabbitmq 家目录路径。

五 初始化并配置用户和启用web界面

  • 5.1 删除默认用户

对于生产环境,请删除默认用户(guest),默认用户只能从localhost 连接。

 rabbitmqctl delete_user guest
  • 5.2 创建新用户并设置为管理员

建议每个应用程序都使用单独的用户。

 rabbitmqctl add_user 用户名 密码
rabbitmqctl set_user_tags 用户名 administrator
  • 5.3 设置用户权限

设置用户djx 具有 /这个virtual host的所有的资源的配置、写、读权限

rabbitmqctl  set_permissions -p / djx  '.*' '.*' '.*'
  • 5.4 启用web 界面
 rabbitmq-plugins enable rabbitmq_management
  • 5.5 访问

访问路径: http://ip:15672

出现以下界面就意味着搭建成功了



六 常用命令

官网文档链接

  • 6.1 查看rabbitmq server 状态
rabbitmqctl status
  • 6.2 查看已用的组件,内存使用情况,警报
rabbitmq-diagnostics status
  • 6.3 查看有效的节点配置
rabbitmq-diagnostics environment
  • 6.4 对本地节点执行更广泛的运行状况检查
rabbitmq-diagnostics node_health_check
  • 6.5 virtual host操作
每个VirtualHost相当于一个相对独立的RabbitMQ服务器,每个virtual host相互隔离
# 添加virtual host
rabbitmqctl add_vhost ${hostname} # 删除virtual host
rabbitmqctl delete_vhost ${hostname} # 列出所有的virtual host
rabbitmqctl list_vhosts name tracing
# 设置某个用户对于某个host 的权限
set_permissions [-p vhost] user conf write read 示例1:
rabbitmqctl set_permissions -p my-vhost janeway “^janeway-.*” “.*” “.*”
表示设置用户 janeway 对于host名为 my-vhost的以janeway-为开头的资源具有读写权限
示例2:
rabbitmqctl set_permissions -p my-vhost djx “.*” “.*” “.*”
表示设置用户 djx 对于host名为 my-vhost的所有的资源具有读写权限 # 删除用户权限
clear_permissions [-p vhost] username
示例:
rabbitmqctl clear_permissions -p my-vhost janeway
删除用户 janeway 对host my-vhost 的权限 # 查看virtual host已有的用户和权限
rabbitmqctl list_permissions -p ${主机名}
  • 6.6 用户操作
# 添加用户
rabbitmqctl add_user {用户名} {密码} # 设置用户角色,除了管理员用户,还有监控者(monitoring),普通管理者(management),策略制定者(policymaker)
management
User can access the management plugin
policymaker
User can access the management plugin and manage policies and parameters for the vhosts they have access to.
monitoring
User can access the management plugin and see all connections and channels as well as node-related information.
administrator
User can do everything monitoring can do, manage users, vhosts and permissions, close other user’s connections, and manage policies and parameters for all vhosts.
示例
rabbitmqctl set_user_tags {用户名} administrator/monitoring/management # 查看用户列表
rabbitmqctl list_users # 给用户赋予权限
rabbitmqctl set_permissions -p {virtual host名称} 用户名 配置权限 写权限 读权限
示例
rabbitmqctl set_permissions -p / djx '.*' '.*' '.*' # 查看用户权限
rabbitmqctl list_user_permissions {用户名} # 查看已有的用户和权限
rabbitmqctl list_permissions -p '{virtual host名}' # 删除用户
rabbitmqctl delete_user {用户名} # 修改用户的密码
rabbitmqctl change_password {用户名} {新密码}

七 错误解决方法

  • 问题1

如果在 yum install rabbitmq-server-3.7.12-1.el7.noarch.rpm 遇到了erlang依赖错误的话,

实际我们是已经安装erlang,但是rabbitmq-server 还是检测不到,我重载了环境变量还是不行。

解决办法

先忽略依赖问题安装

rpm -i --nodeps rabbitmq-server-3.7.12-1.el7.noarch.rpm

然后更改rabbitmq的启动加载的环境配置文件 /usr/lib/rabbitmq/bin/rabbitmq-env。在里面开头添加

source  /etc/profile

或者尝试方法:添加一个软连接

ln -s /usr/local/erlang/bin/erl		 /usr/bin/erl

八 rabbitmq 生产环境应该注意的地方

见文章rabbitmq生产环境配置

rabbitmq 部署(二进制和rpm)与常用命令的更多相关文章

  1. 软件包查询-rpm查询常用命令

    软件包查询 〇.测试环境[root@osker ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core)[root@osker ...

  2. RabbitMQ OS X下安装及常用命令-1

            RabbitMQ的主页在http://www.rabbitmq.com/ . 1. 安装Erlang RabbitMQ是用Erlang编写的,所以需要先安装Erlang,如果有的话跳过 ...

  3. php开发面试题---Linux常用命令大全

    php开发面试题---Linux常用命令大全 一.总结 一句话总结: ls 查看目录中的文件 cd .. 返回上一级目录 cat 查看文件内容 touch 新建文件或修改时间 1.linux 系统信息 ...

  4. 以太坊geth客户端下的一些常用命令

    这是一个交互式的 JavaScript 执行环境,在这里面可以执行 JavaScript 代码,其中 > 是命令提示符.在这个环境里也内置了一些用来操作以太坊的 JavaScript 对象,可以 ...

  5. 转载:RabbitMQ常用命令

    RabbitMQ常用命令 RabbitMQ常用命令 rabbitmqctl命令http://www.rabbitmq.com/man/rabbitmqctl.1.man.html# 1). 服务器启动 ...

  6. 【Docker】(3)---linux部署Docker、Docker常用命令

    linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...

  7. Hexo学习笔记--常用命令及部署步骤

    参考资料: Hexo搭建Github静态博客:http://www.cnblogs.com/zhcncn/p/4097881.htmlHexo:独立博客新玩法:http://www.aips.me/h ...

  8. rabbitmq重启时报错,并导致erlang崩溃和Rabbit的常用命令

    -------------------------------------------------------------------------------------------------- R ...

  9. yum与rpm常用命令

    1  yum常用命令 2  rpm常用命令 1  yum常用命令 (1)列出所有可更新的软件清单命令:yum check-update (2)更新所有软件命令:yum update (4)仅安装指定的 ...

随机推荐

  1. 20145232 韩文浩 《Java程序设计》第1周学习总结

    教材学习内容总结 看到已经有人学到了第四章,真是_(:з」∠)_ 于是我也开始了我的Java之旅. 首先学习了几常见的dos命令行方式 dir: 列出当前目录下所有文件及文件夹 md :创建目录 rd ...

  2. wc2016鏖战表达式(可持久treap)

    由运算符有优先级可以想到先算优先级小的,然后两边递归,但符号比较少,有大量相同的,同级之间怎么办呢?因为运算符满足结合律,同级之间选一个然后两边递归也是没问题的,然后我们想到用fhqtreap进行维护 ...

  3. 网络编程socket、udp

    PS:主机字节顺序,个位在低字节上 计算机本身不能通讯,使通过在同一主机或者不同主机内的软件进行数据传输. 套接字socket:套接字socket可以参照文件指针来理解,文件指针是表示对文件打开进行某 ...

  4. android webview使用心得 屏幕宽度自适应

    webview中右下角的缩放按钮能不能去掉 settings.setDisplayZoomControls(false); //隐藏webview缩放按钮 让Webview加载的页面居中显示有我知道的 ...

  5. OpenGL中的拾取模式( Picking)

    1. Opengl中的渲染模式有三种:(1)渲染模式,默认的模式:(2)选择模式, (3)反馈模式.如下 GLint glRenderMode(GLenum mode) mode可以选取以下三种模式之 ...

  6. jQuery插件初级练习5

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  7. java数据库编程(未整理完,待续)

    java使用数据库可以借助jdbc这个中间媒介.本文将介绍如何使用jdbc连接数据库,数据库的基本操作和jdbc的事物处理. 1 连接数据库 一般java连接数据库,都有几个步骤: 0.导入相应的驱动 ...

  8. 分形之康托(Cantor)三分集

    1883年,德国数学家康托(G.Cantor)提出了如今广为人知的三分康托集,或称康托尔集.三分康托集是很容易构造的,然而,它却显示出许多最典型的分形特征.它是从单位区间出发,再由这个区间不断地去掉部 ...

  9. GDI+配置

    GDI+的配置过程: 一.打开stdafx.h文件,在其中加入: #include "Gdiplus.h" #pragma comment(lib,"Gdiplus.h& ...

  10. 项目中jsp的存放

    今天早上犯的错, 复习jsp,把jsp放在 WEB-INF 下  我启动项目,想看效果的时候,一直找不到指定的资源404 后来一番探索,我把它拖放在了WebContent  直接访问的,下午看到知识点 ...