Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程

前言
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件),其服务器是用Erlang语言编写的。它轻量级,可以部署在分布式和联合配置中,以满足高规模,高可用性要求,其安装过程并不复杂。(安装之前请确保你的虚拟机已安装jdk)

第一步:下载、上传

前面提到 rabbitmq 是由 erlang 语言编写的,所以需要下载两个压缩包

1. erlang 推荐下载地址: erlang的所有版本下载
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第1张图片
2. rabbitmq 官方下载地址: https://www.rabbitmq.com/
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第2张图片
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第3张图片
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第4张图片

2020-05-07更新
rabbitmq其实更新速度很快,现在官网已3.8版本,个人还没用新版,不过3.7绝对够用
考虑到erlang和rabbitmq下载速度会很慢很慢,现已上传至某盘,直接去这下载,下面是链接:
https://pan.baidu.com/s/1esqxDc1J-iOsMclG6jDV6A 34xd

3. 注意版本

rabbitmq 和 erlang 是有版本依赖的,不能两个版本相差太多,官方有版本说明: rabbitmq和erlang版本依赖说明

Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第5张图片
下载完成后就可以备份到你U盘里了,做个归纳,以后随时可以安装。

4. 上传到 Linux

在 /usr/local 下创建一个 rabbitmq 文件夹

[root@localhost ~]# cd /usr/local/
[root@localhost local]# mkdir rabbitmq

把刚下载好的两个压缩包上传到 rabbitmq 文件夹

我这里通过 rz 命令把 Windows 里文件上传到 Linux 里,执行 yum install -y lrzsz 后即可支持 rz 上传功能
命令行输入 rz,即可选择本地文件进行上传

第二步:安装Erlang

1. 环境

[root@localhost rabbitmq]# yum -y install ncurses-devel
[root@localhost rabbitmq]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

2. 解压

[root@localhost rabbitmq]# tar -xvf otp_src_21.1.tar.gz

3. 安装

进入解压后的 otp_src_21.1 目录,执行以下命令生成 erlang 目录(我目录就放在 rabbitmq 文件夹里,随意)

[root@localhost rabbitmq]# cd otp_src_21.1
[root@localhost otp_src_21.1]# ./configure --prefix=/usr/local/rabbitmq/erlang --without-javac

接着进行编译、安装(过程有点慢)

[root@localhost otp_src_21.1]# make
[root@localhost otp_src_21.1]# make install

4. 测试

[root@localhost otp_src_21.1]# cd ..
[root@localhost rabbitmq]# cd erlang/
[root@localhost erlang]# ./bin/erl

若能进入erlang的shell里去,表示 erlang 已经安装完成(两次 Ctrl + C 即可退出来),如下图(环境变量后面再配置)
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第6张图片

第三步:安装RabbitMQ

1. 环境

[root@localhost rabbitmq]# yum install python -y
[root@localhost rabbitmq]# yum install xmlto -y

2. 解压(先得到tar格式文件,接着再解压)

[root@localhost rabbitmq]# xz -d rabbitmq-server-generic-unix-3.7.17.tar.xz 
[root@localhost rabbitmq]# tar -xvf rabbitmq-server-generic-unix-3.7.17.tar

3. 改名(原名过长就改为rabbitmq)

[root@localhost rabbitmq]# mv rabbitmq_server-3.7.17/ rabbitmq

现在/usr/local/下 rabbitmq 的目录如下:erlang 是 otp 生成的,解压后的 rabbitmq 无需再进行make操作,可直接使用
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第7张图片
这是 rabbitmq 里 sbin 目录,里面都是一些命令,包括启动、停止,可自行去查看rabbitmq 里的目录情况
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第8张图片
4. 配置环境变量

[root@localhost rabbitmq]# vi /etc/profile

在 profile 文件末尾加上下面这句话(同时包含了erlang的环境变量配置),要注意路径要正确,最后wq保存退出

export PATH=$PATH:/usr/local/rabbitmq/erlang/bin:/usr/local/rabbitmq/rabbitmq/sbin

Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第9张图片
使配置立即生效

[root@localhost rabbitmq]# source /etc/profile

5. 启动

由于上面已经配置环境变量,所以可不必进入到 rabbitmq 的 sbin 命令目录,直接 rabbitmq-server 即可启动。
当然也可以进入到 sbin 目录,使用 ./rabbitmq-server 进行启动(目前不是后台启动,可以清楚看到启动情况)
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第10张图片
6. 关闭

其实关闭 rabbitmq 的命令也在其 sbin 目录里,就是第二个 rabbitmqctl,命令如下

[root@localhost sbin]# ./rabbitmqctl stop

其实到这里,rabbitmq 已经算安装完成了,在一般项目里已经可以正常使用。
rabbitmq 它默认会创建一个账号 guest,密码也是 guest,但是默认的这个账号权限比较低,只能使用 localhost 连接,无法远程连接(其实官网也有说明,当然也有解决办法,下面会有介绍一种方案)

第四步:RabbitMQ账号设置

1. 启动插件功能

[root@localhost sbin]# ./rabbitmq-plugins enable rabbitmq_management

Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第11张图片
这时,rabbitmq 会有一个网页端口号,默认为 15672,启动 rabbitmq 后,在浏览器访问 IP+端口,如:http://192.168.183.129:15672/,会出现一个登陆界面,输入默认的 guest 账号试试,发现登陆不了(因为默认的guest用户只能使用localhost连接)
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第12张图片
如果想要登陆进去的话,可以对guest做配置修改,但是不建议,这里可以创建一个账号

2. 创建一个账号

(1)创建之前,可以先查看一下当前有哪些用户和权限

[root@localhost sbin]# ./rabbitmqctl list_users
[root@localhost sbin]# ./rabbitmqctl list_user_permissions guest

(2)添加用户(我这里账号就设为 admin,密码也是 admin,随意)

[root@localhost sbin]# ./rabbitmqctl add_user admin admin

(3)设置其角色(超级管理员)

[root@localhost sbin]# ./rabbitmqctl set_user_tags admin administrator

(4)设置其权限

[root@localhost sbin]# ./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

这时再用刚创建的 admin 账号去登陆试试,发现已经可以登陆进去了(此时在项目里就可以用admin账号)
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第13张图片
从上图中我们可以看到rabbitmq的一些基本情况,如Connections、Channels、Exchanges、Queues,最右边的admin选项卡可以看到所有的用户情况,也可以创建用户,大家可以自行点开看一下,熟悉一下RabbitMQ Server的服务端。

另外,除了在上面web页面直接操作外,也完全可以在虚拟机下使用命令行的方式进行操作管理,执行:rabbitmqctl help,会出现所有的指令帮助,通过 rabbitmqctl xxx 形式进行执行
Linux下新版RabbitMQ3.7.17(解压版)详细安装及配置过程_第14张图片
这里附带介绍RabbitMQ的一些基本概念:

关键字 说明
Broker 消息队列服务器的实体,是一个中间件应用,负责接收生产者的消息,然后将消息发送至消息接收者或其他的Broker
Exchange 消息交换机,是消息第一个到达的地方,消息通过它指定的路由规则,分发到不同的消息队列中去
Queue 消息队列,消息通过发送和路由之后最终到达的地方。到达Queue的消息即进入等待消费的状态,每个消息都会被发送到一个或多个队列
Binding 绑定,它的作用就是把Exchange和Queue按照路由规则绑定起来,也就是Exchange和Queue之间的虚拟连接
Routing Key 路由关键字,Exchange 根据这个关键字进行消息投递
Virtual host 虚拟主机,它是对Broker的虛拟划分,将消费者、生产者和它们依赖的AMQP相关结构进行隔离,一般都是为了安全考虚。比如,我们可以在一一个Broker中设置多个虚拟主机,对不同用户进行权限的分离
Connection 连接,代表生产者、消费者、Broker之间进行通信的物理网络
Channel 消息通道,用于连接生产者和消费者的逻辑结构。在客户端的每个连接里,可建立多个Channel,每个Channel代表一个会话任务,通过Channel可以隔离同一连接中的不同交互内容
Producer 消息生产者,制造消息并发送消息的程序
Consumer 消息消费者,接收消息并处理消息的程序

消息投递到队列的整个过程大致如下:

1、客户端连接到消息队列服务器,打开一个Channel
2、客户端声明一个Exchange,并设置相关属性
3、客户端声明一个Queue,并设置相关属性
4、客户端使用Routing Key,在Exchange和Queue之间建立好绑定关系
5、客户端投递消息到Exchange
6、Exchange接收到消息后,根据消息的Key和已经设置的Binding,进行消息路由,将消息投递到一个或多个Queue里

到这里,RabbitMQ 的安装已经全部完成了,如果跟着这步骤来,保证是OK的。

你可能感兴趣的:(Linux)