什么是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/
 

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

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


 

Rabblit官网地址

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

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

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

 

第一步安装Erlang使用存储库安装

1.添加存储库条目

要将Erlang Solutions存储库(包括用于验证已签名软件包的公共密钥)添加到您的系统,请调用以下命令:

wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
rpm -Uvh erlang-solutions-2.0-1.noarch.rpm

或者:手动添加存储库条目

RPM软件包已签名。要添加Erlang Solutions键,请执行以下命令:

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

将以下行添加到"/etc/yum.repos.d/"中的erlang_solutions.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

2.添加具有依赖性的存储库

软件包需要一些标准存储库中不存在的软件包。请确保已启用EPEL存储库

3.安装Erlang

调用以下命令来安装“ erlang”软件包:

sudo yum install erlang

安装成功后图片: 

 

验证输入erl即可进入Erlang 

 

第二步,手动安装RabbitMQ

在使用Yum存储库之前,必须先导入RabbitMQ签名密钥。这使RPM工具信任存储库中提供的软件包上的签名。为此,以超级用户身份运行rpm --import

rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

 为了使用Yum存储库,必须在/etc/yum.repos.d/目录下添加一个.repo文件(例如,rebbitmq.repo)。在不同发行版之间,文件的内容将略有不同(例如,CentOS 7和8与CentOS 6与OpenSUSE)。

以下示例

在CentOS 7上将安装RabbitMQ 3.8的存储库:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/8/
gpgcheck=0
repo_gpgcheck=0
enabled=1

在CentOS 7上:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

与CentOS 6相同:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/6/
gpgcheck=0
repo_gpgcheck=0
enabled=1

以下示例针对OpenSUSE:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/opensuse/42.1/
gpgcheck=0
repo_gpgcheck=0
enabled=1

以下示例针对SLES 11.x:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/sles/11
gpgcheck=0
repo_gpgcheck=0
enabled=1

以下示例设置了一个存储库,该存储库将在CentOS 7上安装RabbitMQ 3.7。请注意,RabbitMQ 3.7 在2020年将不再受支持

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

具有rpm和已下载的RPM

下载服务器软件包后,以“ root”身份发出以下命令:

rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
#此示例假定软件包的CentOS 8版本。
#对于CentOS 7,将“ el8”替换为“ el7”。
yum install rabbitmq-server-3.8.1-1.el8.noarch.rpm

RabbitMQ公共签名密钥也可以从rabbitmq.com下载

rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
#此示例假定软件包的CentOS 8版本。
#对于CentOS 7,将“ el8”替换为“ el7”。
yum install rabbitmq-server-3.8.1-1.el8.noarch.rpm

下载服务器

在某些情况下,下载软件包并手动安装可能会更容易。该软件包可以从GitHub下载。

描述下载签名
适用于RHEL Linux 8.x,CentOS 8.x,Fedora 28+的RPM(支持systemd)rabbitmq-server-3.8.1-1.el8.noarch.rpm签名
适用于RHEL Linux 7.x,CentOS 7.x,Fedora 24+的RPM(支持systemd)rabbitmq-server-3.8.1-1.el7.noarch.rpm签名
RHEL Linux 6.x,CentOS 6.x,Fedora之前的RPM 19rabbitmq-server-3.8.1-1.el6.noarch.rpm签名
适用于openSUSE Linux的RPMrabbitmq-server-3.8.1-1.suse.noarch.rpm签名
SLES 11.x的RPMrabbitmq-server-3.8.1-1.sles11.noarch.rpm签名

运行RabbitMQ服务器

启动服务器

安装RabbitMQ服务器软件包时,默认情况下未将服务器作为守护程序启动。在系统引导时默认启动守护程序,以管理员身份运行

chkconfig rabbitmq-server on

作为管理员,像往常一样启动和停止服务器:

/sbin/service rabbitmq-server start

/sbin/service rabbitmq-server stop

安装完毕,查看RabbMQ状态:service rabbitmq-server status
设置开启启动:sudo chkconfig rabbitmq-server on
开启WEB管理页面:sudo rabbitmq-plugins enable rabbitmq_management
默认WEB管理的登录帐号和密码统一为:guest


默认RabbitMQ拥有如下端口号:

端口号简单说明
15672    HTTP API客户端,管理UIRabbitmqadmin (仅在启用了管理插件的情况下)
5672,5671由不带TLS和带TLS的AMQP 0-9-1和1.0客户端使用
4369    epmd,RabbitMQ节点和CLI工具使用的对等发现服务
25672    用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口+ 20000)。除非确实需要这些端口上的外部连接(例如,群集使用联合身份验证或在子网外部的计算机上使用CLI工具),否则这些端口不应公开。有关详细信息,请参见网络指南
35672-35682由CLI工具(Erlang分发客户端端口)用于与节点进行通信,并从动态范围(计算为服务器分发端口+ 10000通过服务器分发端口+ 10010)分配。有关详细信息,请参见网络指南
61613, 61614不带TLS和带TLS的STOMP客户端(仅在启用STOMP插件的情况下)
1883, 8883 (如果启用了MQTT插件,则不带TLS和具有TLS的MQTT客户端
15674    STOMP-over-WebSockets客户端(仅在启用了Web STOMP插件的情况下)
15675MQTT-over-WebSockets客户端(仅在启用Web MQTT插件的情况下)
15692Prometheus指标(仅在启用Prometheus插件的情况下)

可以将RabbitMQ配置 为使用不同的端口和特定的网络接口。 

一般常用就156725672防火墙进行放出端口。

在Linux上控制系统限制

运行生产工作负载的RabbitMQ安装可能需要系统限制和内核参数调整,才能处理相当数量的并发连接和队列。需要调整的主要设置是打开文件的最大数量,也称为ulimit -n。对于消息传递代理,许多操作系统上的默认值都太低(在几个Linux发行版中为1024)。我们建议在生产环境中为用户Rabbitmq至少允许65536个文件描述符。4096应该足以应付许多开发工作负载。

有两个限制:操作系统内核允许的最大打开文件数(fs.file-max)和每个用户的限制(ulimit -n)。前者必须高于后者。

外部访问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进行登录
至此,安装结束。。。。

日志文件和管理

服务器日志位于可配置目录下,当通过Linux软件包管理器安装RabbitMQ时,该目录通常默认为/var/log/rabbitmq

RABBITMQ_LOG_BASE可用于覆盖日志目录位置

本文参考:

https://www.rabbitmq.com/install-rpm.html#install-erlang

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

https://blog.csdn.net/u011709128/article/details/81082331#rabblit%E5%AE%98%E7%BD%91%E5%9C%B0%E5%9D%80

 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐