RabbitMQ下载与安装

RabbitMQ下载与安装

首先需要介绍一下rabbitMq。


MQ简介

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。——[百度百科]

什么是RabbitMQ

RabbitMQ是由Erlang语言编写的实现了高级消息队列协议(AMQP)的开源消息代理软件(也可称为 面向消息的中间件)。支持Windows、Linux/Unix、MAC OS X操作系统和包括JAVA在内的多种编程语言。

AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。

官方文档地址:

rabbitMQ的java驱动官方文档地址
版本5.3.0:https://rabbitmq.github.io/rabbitmq-java-client/api/current/overview-summary.html
版本4.7.0:https://rabbitmq.github.io/rabbitmq-java-client/api/4.x.x/overview-summary.html

spring AMQP 官方文档地址
版本1.7.3:https://docs.spring.io/spring-amqp/docs/1.7.3.BUILD-SNAPSHOT/api/

目录

[TOC]来生成目录:

  • RabbitMQ下载与安装
    • MQ简介
    • 什么是RabbitMQ
    • 官方文档地址:
      • 目录
      • 使用场景(解决了什么问题)
      • Rabblit官网地址
      • 开始安装,第一步安装Erlang,第二步安装RabbitMQ
      • 第一步,笔者采用Erlang官方安装方式
      • 第二步,手动安装RabbitMQ
        • 设置开启启动:sudo chkconfig rabbitmq-server on
        • 开启WEB管理页面:sudo rabbitmq-plugins enable rabbitmq_management
        • 默认WEB管理的登录帐号和密码统一为:guest
      • 但是我们并不直接使用guest,我们新建一个新的用户来操作登录
      • 最后一步,操作完毕,要记得重启,记得重启,记得重启。三遍
      • 更多操作命令,详情参照RabbitMQ官方文档
    • 其中出现的报错问题(报错分析)

使用场景(解决了什么问题)

名称 简单说明
异步处理 应用之间的异步处理问题
应用解耦 应用之间的解耦问题
流量削峰 对应用的流量进行削峰,如秒杀场景
日志处理 应用之间的日志收集,假设程序里面每个类,每个方法都要定义日志记录,单单说效率就不好

Rabblit官网地址

Rabblit官网地址:http://www.rabbitmq.com/

RabbitMQ下载与安装_第1张图片

进入下载页面
RabbitMQ下载与安装_第2张图片

根据操作系统的不同,选择不同的版本

RabbitMQ下载与安装_第3张图片

此处使用CentOS6x版本操作系统安装

RabbitMQ下载与安装_第4张图片

注意:由于RabbitMQ是使用Erlang语言编写的,我们还必须安装Erlang

RabbitMQ下载与安装_第5张图片

跑到Erlang下载环境(网页往下拖有Erlang的官方安装方式,此方式不需要下载)

地址:https://www.erlang-solutions.com/resources/download.html

RabbitMQ下载与安装_第6张图片


开始安装,第一步安装Erlang,第二步安装RabbitMQ

第一步,笔者采用Erlang官方安装方式

注意事项:第一步骤/etc/yum.repos.d/里面的erlang-solutions是需要替换成Erlang官方安装下的配置,否则安装RabbitMQ的时候回报Erlang版本需要大于等于19.3的错误,报错在下面有分析

Erlang官方安装过程如下:

RabbitMQ下载与安装_第7张图片

RabbitMQ下载与安装_第8张图片

//下载安装包
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

//
rpm --import https://packages.erlang-solutions.com/rpm/erlang_solutions.asc

//在/etc/yum.repos.d/目录下新建一个文件rabbitmq-erlang.repo,然后将下面的粘帖进去
[erlang-solutions]
name=CentOS $releasever - $basearch - Erlang Solutions
baseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearch
gpgcheck=1
gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.asc
enabled=1

//执行安装
sudo yum install erlang

//执行安装esl
sudo yum install esl-erlang

安装成功后图片:

RabbitMQ下载与安装_第9张图片

输入erl即可进入Erlang

RabbitMQ下载与安装_第10张图片

第二步,手动安装RabbitMQ

切换到上传rabbitMQ的安装包路径下,执行:
rpm -ivh rabbitmq-server-3.7.7-1.el6.noarch.rpm

这里写图片描述

安装完毕,查看RabbMQ状态:service rabbitmq-server status

设置开启启动:sudo chkconfig rabbitmq-server on

开启WEB管理页面:sudo rabbitmq-plugins enable rabbitmq_management

默认WEB管理的登录帐号和密码统一为:guest

默认RabbitMQ拥有如下端口号:

端口号 简单说明
15672 WEB管理界面
5672,5671 由AMQP 0-9-1和1.0客户端使用,没有和使用TLS
4369 epmd,RabbitMQ节点和CLI工具使用的对等发现服务
25672 用于节点间和CLI工具通信(Erlang分发服务器端口)并从动态范围分配(默认情况下限于单个端口,计算为AMQP端口+ 20000)
35672-35682 CLI工具(Erlang分发客户端端口)用于与节点通信,并从动态范围(计算为服务器分发端口+ 10000到服务器分发端口+ 10010)进行分配。
61613, 61614 没有和使用TLS的STOMP客户端(仅当启用了STOMP插件时)
1883, 8883 如果启用了MQTT插件,则没有和使用TLS的MQTT客户端
15674 STOMP-over-WebSockets客户端(仅当启用了Web STOMP插件时)
15675 MQTT-over-WebSockets客户端(仅当启用了Web MQTT插件时)

一般常用就15672和5672

防火墙进行放出端口。

外部访问192.168.153.128:15672/#/users,如下图:

RabbitMQ下载与安装_第11张图片

但是此时是登录不了的,默认guest只能localhost访问

但是我们并不直接使用guest,我们新建一个新的用户来操作登录

添加RabbitMQ用户:sudo rabbitmqctl add_user root 123456
帐号:root 密码123456

赋予RabbitMQ用户角色:sudo rabbitmqctl set_user_tags root administrator

赋予用户默认vhost的全部操作权限:sudo rabbitmqctl set_permissions -p / root “.” “.” “.*”

查看用户的权限:sudo rabbitmqctl list_user_permissions username

查看全部用户:sudo rabbitmqctl list_users

此操作删除guest用户,我们自己创建新的用户来使用
删除用户:sudo rabbitmqctl delete_user guest

最后一步,操作完毕,要记得重启,记得重启,记得重启。三遍

service rabbitmq-server restart

重启后我们再访问:http://192.168.153.128:15672/#/users进行登录

RabbitMQ下载与安装_第12张图片

至此,安装结束。。。。


更多操作命令,详情参照RabbitMQ官方文档

地址:https://www.rabbitmq.com/rabbitmqctl.8.html


其中出现的报错问题(报错分析)

执行安装rabbitMQ的时候报错

RabbitMQ下载与安装_第13张图片

此处为2个问题,第一个问题是Erlang版本需要大于等于19.3版本,第二个问题为没有socat依赖

第一个问题。笔者安装的Erlang为21.0版本,明明是大于19.3版本的。但是却报错了。
使用:yum list | grep erlang再次确认一下查看一下
RabbitMQ下载与安装_第14张图片

确定版本为21.0,但是却报错。回想了一下,笔者在按照Erlang官方安装的时候,添加了一些东西

原本/etc/yum.repos.d/里面的erlang-solutions,只是添加了官方的给出的代码。并不是替换里面的内容

顺便百度了一下这个问题:https://www.jianshu.com/p/f54dc259a9ed

索性卸载Erlang替换内容再次安装。。

执行yum remove esl-erlang.x86_64进行erlang卸载

解决方案:在/etc/yum.repos.d/目录下新建一个文件rabbitmq-erlang.repo,然后将repo库代码(上面有)粘帖进去

再次执行安装

sudo yum install erlang

果然,再次重新安装Erlang之后,就可以执行安装RabbitMQ了

这里写图片描述

再解决第二个问题,解决方法安装centos的epel的扩展源

yum -y install epel-release

之后执行yum -y install socat

你可能感兴趣的:(rabbitMQ)