当前位置:首页 > 数码 > Centos7下装置部署RabbitMQ-一文看尽 (centos7)

Centos7下装置部署RabbitMQ-一文看尽 (centos7)

admin4个月前 (05-14)数码9

前言

RabbitMQ是一个开源的弱小的企业信息系统,支持干流的操作系统,支持多种开发言语。咱们名目中经常使用RabbitMQ作为信息队列,解耦业务,构建高牢靠的信息队列系统。RabbitMQ可以用在订单系统、日志系统、数据搜集等经常出现场景中。

本文咱们引见如何在上装置以后最新版的RabbitMQ:v3.8.1,以及如何经常使用来装置RabbitMQ。

装置RabbitMQ

装置RabbitMQ之前要装置Erlang,须要先到RabbitMQ官方看下版本对应相关。

以后最新版rabbitmq-server是3.8.14,最新版Erlang是23.x。咱们可以区分在和RabbitMQ官方下载对应的版本的rpm包。

下载Erlang的rpm包

访问Erlang的Github,如下:。

#下载地址

下载RabbitMQ的rpm包

访问RabbitMQ的官方,如下:。

#下载地址wget

下载好rpm包后,接上去咱们经常使用rpm启动装置。

经常使用rpm装置

首先装置依赖socat,装置Erlang时须要这个。

yuminstall-ysocat

接上去装置Erlang和RabbitMQ。

rpm-ivherlang-23.3.2-1.el7.x86_64.rpmrpm-ivhrabbitmq-server-3.8.14-1.el7.noarch.rpm

执行上述两行命令后,即成功了Erlang和RabbitMQ的装置,就这么繁难。

启动RabbitMQ:

systemctlstartrabbitmq-server

设置RabbitMQ开机自启动:

systemctlenablerabbitmq-server

RabbitMQ其余操作:

#检查启动后的状况rabbitmqctlstatus#封锁服务rabbitmqctlstop#重启rabbitmqsystemctlrestartrabbitmq-server#服务形态systemctlstatusrabbitmq-server#检查一切队列rabbitmqctllist_queues#肃清某个队列的数据rabbitmqctlpurge_queuequeueName#肃清一切队列数据以及用户数据、性能数据:慎用,记得要先把MQ的meta>rabbitmq-pluginsenablerabbitmq_management

执行如下:

2、新建一个用户名为admin,明码为admin的治理员,并授予治理(administrator)权限。

rabbitmqctladd_useradminadminrabbitmqctlset_user_tagsadminadministrator

执行如下:

3、设置admin可以经常使用的虚机权限。

rabbitmqctladd_vhostadminrabbitmqctlset_permissions-padminadmin".*"".*"".*"

执行如下:

4、插件治理:

#插件列表:rabbitmq-pluginslist#启动插件:rabbitmq-pluginsenableXXX(XXX为插件名)#停用插件:rabbitmq-pluginsdisableXXX

5、关上后盾web治理界面:

一文看尽

刚才咱们设置了admin用户,所以可以经常使用admin登录,也可以经常使用自动账号和明码都是guest登录。进入治理界面后可以看到:

经常使用账号/明码:admin/admin启动登录,如下:

咱们可以在后盾治理用户、队列等信息。

6、修正RabbitMQ自动端口

RabbitMQ自动开启了几个端口:

有时刻在消费环境下,咱们出于安保等要素宿愿修正掉自动的端口号。

咱们装置新版的RabbitMQ-3.8.x后,发现找不到它的性能文件,按常理,服务的端口开发都可以在性能文件里性能的。然而理想上RabbitMQ-3.8.1并没有生成性能文件,须要咱们手动参与性能文件。

[root@..]#ls/etc/rabbitmq/rabbitmq.confls:cannotaccess/etc/rabbitmq/rabbitmq.conf:Nosuchfileordirectory#须要手动参与

官方倡导性能文件的位置:/etc/rabbitmq/rabbitmq.conf

咱们如今要做的是把自动端口5672改成56720,并且准许远程访问。把web治理自动端口15672改成56271。只要如下性能:

#vim/etc/rabbitmq/rabbitmq.conf#AMQP0-9-1and1.0port,自动5672,准许远程访问listeners.tcp.default=0.0.0.0:56720#web治理,自动15672management.tcp.port=56721management.tcp.ip=0.0.0.0

执行如下:

保留,偏重启RabbitMQ服务。

systemctlrestartrabbitmq-serversystemctlstatusrabbitmq-server

使�stat-lntp检查端口监听状况:

7、其余性能

咱们可以到官方地址:,了解RabbitMQ的性能提升方面的性能。

经常使用Docker装置RabbitMQ

在开发环境中,咱们也可以间接经常使用Docker启动装置愈加繁难,上方咱们继续经常使用Docker来装置一遍。

首先,咱们得装置docker环境。

yuminstall-ydocker

检查docker的版本:

[root@serverdocker]#dockerversionClient:Version:1.13.1APIversion:1.26Packageversion:docker-1.13.1-208.git7d71120.el7_9.x86_64Goversion:go1.10.3Gitcommit:7d71120/1.13.1Built:MonJun715:36:092021OS/Arch:/amd64Server:Version:1.13.1APIversion:1.26(minimumversion1.12)Packageversion:docker-1.13.1-208.git7d71120.el7_9.x86_64Goversion:go1.10.3Gitcommit:7d71120/1.13.1Built:MonJun715:36:092021OS/Arch:linux/amd64Experimental:false[root@serverdocker]#

搜查RabbitMQ镜像:

[root@~]#dockersearchrabbitmqNAMEDESCRIPTIONSTARSOFFICIALAUTOMATEDrabbitmqRabbitMQisanopensourcemulti-protocolme…3703[OK]bitnami/rabbitmqBitnamiDockerImageforRabbitMQ62[OK]tutum/rabbitmqBasedockerimagetorunaRabbitMQserver22kbudde/rabbitmq-exporterrabbitmq_exporterforprometheus15[OK]frodenas/rabbitmqADockerImageforRabbitMQ12[OK]cyrilix/rabbitmq-mqttRabbitMQMQTTAdapter9[OK]arm32v7/rabbitmqRabbitMQisanopensourcemulti-protocolme…7

拉取RabbitMQ镜像:

dockerpulldocker.io/rabbitmq

而后检查镜像:

[root@serverdocker]#dockerimagesREPOSITORYTAGIMAGEIDCREATEDSIZEdocker.io/rabbitmqlatestba647756d55a3daysago221MB[root@serverdocker]#

而后运转容器:

dockerrun--namerabbitmq-d-p5672:5672-p15672:15672-v/data:/var/lib/rabbitmqdocker.io/rabbitmq

整顿写一个重启服务脚本:

[root@serverdocker_rabbitmq]#catrestart_service.sh#!/bin/shbasedir=`pwd`>[root@serverdocker_rabbitmq]#dockerpsCONTNERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESb959544500f4docker.io/rabbitmq"docker-entrypoint..."2secondsagoUp1second4369/tcp,0.0.0.0:5672->5672/tcp,5671/tcp,15691-15692/tcp,25672/tcp,0.0.0.0:15672->15672/tcprabbitmq

这样,一个RabbitMQ的docker环境就装好了。

在Docker性能RabbitMQ

1、启用网页版后盾治理插件:

rabbitmq-pluginsenablerabbitmq_management

执行如下:

[root@serverdocker_rabbitmq]#dockerexec-itrabbitmqbashroot@b959544500f4:/#rabbitmq-pluginsenablerabbitmq_managementEnablingpluginsonnoderabbit@b959544500f4:rabbitmq_managementThefollowingpluginshavebeenconfigured:rabbitmq_managementrabbitmq_management_agentrabbitmq_prometheusrabbitmq_web_dispatchApplyingpluginconfigurationtorabbit@b959544500f4...Thefollowingpluginshavebeenenabled:rabbitmq_managementstarted1plugins.root@b959544500f4:/#

此时可以经过阅读器访问治理页:

可以经过自动的账号guest/guest登录如下:

2、新建一个用户名为admin,明码为admin的治理员,并授予治理(administrator)权限。

rabbitmqctladd_useradminadminrabbitmqctlset_user_tagsadminadministrator

执行如下:

root@b959544500f4:/#rabbitmqctladd_useradminadminAddinguser"admin"...Done.Don'tforgettogranttheuserpermissionstosomevirtualhosts!See'rabbitmqctlhelpset_permissions'tolearnmore.root@b959544500f4:/#root@b959544500f4:/#rabbitmqctlset_user_tagsadminadministratorSettingtagsforuser"admin"to[administrator]...root@b959544500f4:/#

3、设置admin可以经常使用的虚机权限。

rabbitmqctladd_vhostadminrabbitmqctlset_permissions-padminadmin".*"".*"".*"

执行如下:

root@b959544500f4:/#rabbitmqctladd_vhostadminAddingvhost"admin"...root@b959544500f4:/#rabbitmqctlset_permissions-padminadmin".*"".*"".*"Settingpermissionsforuser"admin"invhost"admin"...root@b959544500f4:/#

4、插件治理:

#插件列表:rabbitmq-pluginslist#启动插件:rabbitmq-pluginsenableXXX(XXX为插件名)#停用插件:rabbitmq-pluginsdisableXXX

5、性能门路说明

rabbit的性能文件目录:/etc/rabbitmqrabbit的数据文件目录:/var/lib/rabbitmqrabbit的日志文件目录:/var/log/rabbitmq

假设须要继续化,可以挂在这些门路:

#创立挂在门路mkdir-p~/rabbitmq/{etc,lib,var/{lib,log}}#启动容器dockerrun-d-p1883:1883-p4369:4369-p5671:5671-p5672:5672-p15672:15672-p25672:25672-p61613:61613-p61614:61614-v~/rabbitmq/etc:/etc/rabbitmq-v~/rabbitmq/lib:/var/lib/rabbitmq-v~/rabbitmq/log:/var/log/rabbitmq--namerabbitrabbitmq:management

后盾治理的经常使用

1、用户角色

前面咱们经常使用命令行创立了一个admin用户,也可以在页面上创立,如下:

在这里可以选用不同的角色来创立用户。

角色说明:

超级治理员(administrator)

可登陆治理控制台,可检查一切的信息,并且可以对用户,战略(policy)启动操作。

监控者(monitoring)

可登陆治理控制台,同时可以检查rabbitmq节点的相关信息(进程数,内存经常使用状况,磁盘经常使用状况等)

战略制订者(policymaker)

可登陆治理控制台,同时可以对policy启动治理。但不可检查节点的相关信息(上图红框标识的局部)。

个别治理者(management)

仅可登陆治理控制台,不可看到节点信息,也不可对战略启动治理。

其余

不可登陆治理控制台,通常就是个别的消费者和消费者。

2、创立vhost并授权给用户

3、开启management_agent插件

上方切换libai这个用户登录一下,如下:

提示了这个告警:

StatsinmanagementUIaredisabledonthisnode

处置措施:

#进入rabbitmq容器dockerexec-it{rabbitmq容器称号或许id}/bin/bash#进入容器后,cd到以下门路cd/etc/rabbitmq/conf.d/#修正management_agent.disable_metrics_collector=falseechomanagement_agent.disable_metrics_collector=false>management_agent.disable_metrics_collector.conf#分开容器exit#重启rabbitmq容器dockerretart{rabbitmq容器id}

上方咱们执行如下:

#进入性能目录root@b959544500f4:/#cd/etc/rabbitmq/conf.d/root@b959544500f4:/etc/rabbitmq/conf.d#ls10-default-guest-user.confmanagement_agent.disable_metrics_collector.confroot@b959544500f4:/etc/rabbitmq/conf.d##检查以后的性能root@b959544500f4:/etc/rabbitmq/conf.d#catmanagement_agent.disable_metrics_collector.confmanagement_agent.disable_metrics_collector=true#修正性能root@b959544500f4:/etc/rabbitmq/conf.d#echomanagement_agent.disable_metrics_collector=false>management_agent.disable_metrics_collector.confroot@b959544500f4:/etc/rabbitmq/conf.d##检查修正后的性能root@b959544500f4:/etc/rabbitmq/conf.d#catmanagement_agent.disable_metrics_collector.confmanagement_agent.disable_metrics_collector=falseroot@b959544500f4:/etc/rabbitmq/conf.d#root@b959544500f4:/etc/rabbitmq/conf.d#exitexit[root@serverdocker_rabbitmq]#ls/>

免责声明:本文转载或采集自网络,版权归原作者所有。本网站刊发此文旨在传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及版权、内容等问题,请联系本网,我们将在第一时间删除。同时,本网站不对所刊发内容的准确性、真实性、完整性、及时性、原创性等进行保证,请读者仅作参考,并请自行核实相关内容。对于因使用或依赖本文内容所产生的任何直接或间接损失,本网站不承担任何责任。

标签: RabbitMQ

“Centos7下装置部署RabbitMQ-一文看尽 (centos7)” 的相关文章

RabbitMQ提前队列成功之摸索 (rabbit中文翻译)

RabbitMQ提前队列成功之摸索 (rabbit中文翻译)

提前队列是指当信息被发送以后,并不是立刻口头,而是期待特定的期间后,生产者才会口头该信息。 提前队列的经常使用场景有以下几种: 一、如何成功提前队列? 提前队列有以下两种成功方式...

RabbitMQ中的消息持久化策略与存储优化实践 (rabbit中文翻译)

RabbitMQ中的消息持久化策略与存储优化实践 (rabbit中文翻译)

在 RabbitMQ 消息队列中,消息的可靠性传输和持久化至关重要。本文将介绍 RabbitMQ 中的消息持久化策略,并提供一些存储优化实践,帮助您确保消息的可靠性和系统的性能。 一、消息持...

RabbitMQ信息发送和接纳形式概览 (rabbit中文翻译)

RabbitMQ信息发送和接纳形式概览 (rabbit中文翻译)

channel.basicQos(0,1,false):0示意对信息的大小有限度,1示意每次只准许生产一条,false示意该限度不作用于channel。同时,咱们驳回手工ACK的形式,由于咱们性能文件...

RabbitMQ消息顺序性解密-确保消息的正确顺序 (rabbit中文翻译)

RabbitMQ消息顺序性解密-确保消息的正确顺序 (rabbit中文翻译)

引言 RabbitMQ 是一个流行的消息队列系统,但它本身并不提供严格的消息顺序保证。这对于一些需要严格按照顺序处理消息的应用场景来说是一个挑战。本文将探讨如何在使用 RabbitMQ 时实现消...

RabbitMQ与消息限流策略的完美结合-保障消息可靠性和系统稳定性 (rabbitmq)

RabbitMQ与消息限流策略的完美结合-保障消息可靠性和系统稳定性 (rabbitmq)

引言 在互联网时代,高并发访问已成为许多应用系统面临的常见挑战。对于需要处理大量请求的系统来说,如何保证系统的稳定性和可靠性是一个关键问题。RabbitMQ作为一种可靠的消息队列中间件,可以帮助...

WebSockets-与-的结合-RabbitMQ-实时协作的秘诀 (websocket和http区别)

WebSockets-与-的结合-RabbitMQ-实时协作的秘诀 (websocket和http区别)

引言 实时协作是现代软件开发中非常重要的一个方面。为了实现实时协作,一种常见的做法是将消息队列与WebSocket技术相结合。 RabbitMQ 简介 RabbitMQ是一个功能强大的消息...