首页 > 编程知识 正文

rabbitmq安装教程,rabbitmq

时间:2023-05-05 22:03:24 阅读:285732 作者:3685

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/

进入下载页面

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

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

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

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

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

开始安装,第一步安装Erlang,第二步安装RabbitMQ 第一步,笔者采用Erlang官方安装方式

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

Erlang官方安装过程如下:

//下载安装包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 Solutionsbaseurl=https://packages.erlang-solutions.com/rpm/centos/$releasever/$basearchgpgcheck=1gpgkey=https://packages.erlang-solutions.com/rpm/erlang_solutions.ascenabled=1//执行安装sudo yum install erlang//执行安装eslsudo yum install esl-erlang

安装成功后图片:

输入erl即可进入Erlang

第二步,手动安装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拥有如下端口号:

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

一般常用就15672和5672

防火墙进行放出端口。

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

但是此时是登录不了的,默认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官方文档

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

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

执行安装rabbitMQ的时候报错

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

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

确定版本为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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。