rabbitmq


目录:

RabbitMQ简介

官网: https://www.rabbitmq.com/

AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

erlang编译安装

由于RabbitMQ是基于erlang的,所以,在正式安装RabbitMQ之前,需要先安装一下erlang。

erlang与RabbitMQ版本的对应关系,如:RabbitMQ3.6.10,建议的erlang版本是19.3.x(安装前必看)

注:erlang-19.0.4只能安装rabbitmq3.6,安装3.7的话安装不报错,启动报错:必须是19.3以上

https://www.rabbitmq.com/which-erlang.html

https://www.erlang.org/downloads

安装依赖文件:

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC unixODBC-devel python-simplejson

编译安装erlang语言环境: (现在至少要23版本才能配rabbitmq2.8.26)

# wget http://erlang.org/download/otp_src_19.2.tar.gz
# tar zxf otp_src_19.2.tar.gz 
# cd otp_src_19.2
# ./configure --prefix=/usr/local/erlang
# make && make install

#加载环境变量
# vim /etc/profile
#set erlang environment
export ERL_HOME=/usr/local/erlang
export PATH=$ERL_HOME/bin:$PATH
# source /etc/profile

# erl   #如果进入erlang的shell则证明安装成功,退出即可。如下面的效果:
Erlang/OTP 19 [erts-8.2] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V8.2  (abort with ^G)
1>

image-20230612172747066

erlang yum源安装

yum list erlang --showduplicates 
yum install erlang

如果自带的yum源erlang版本过低,就使用下面官网的

https://packagecloud.io/rabbitmq/erlang

Centos7:

https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-23.3.4.7-1.el7.x86_64.rpm
curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

Install

yum list erlang --showduplicates
yum install erlang-23.3.4.7-1.el7.x86_64

RabbitMQ二进制安装

https://www.rabbitmq.com/which-erlang.html#compatibility-matrix

https://www.rabbitmq.com/install-generic-unix.html

https://github.com/rabbitmq/rabbitmq-server/releases

1、安装方式

常见的rabbitmq安装方式有两种:rpm安装二进制安装

2、.erlang.cookie是什么

.erlang.cookie是erlang实现分布式的必要文件,erlang分布式的每一个节点上要保持相同的.erlang.cookie文件,同时该文件的权限为400

3、.erlang.cookie文件路径

官方介绍集群的文档介绍如下: .erlang.cookie一般会存在于两个地方,第一个是:$HOME/.erlang.cookie;第二个是:/var/lib/rabbitmq/.erlang.cookie

如果我们使用解压缩安装方式(二进制安装或者编译安装),那么该文件存在位置为\$HOME目录下。即$HOME/.erlang.cookie。如果我们使用root安装,则位置为:/root/.erlang.cookie,其他用户为/home/用户名/.erlang.cookie

如果我们使用rpm包方式安装,那么这个文件会存在于/var/lib/rabbitmq目录下。

重点: .erlang.cookie文件的权限是400

下载安装RabbitMQ :

# yum install socat
# https://github.com/rabbitmq/rabbitmq-server/releases
# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz
# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.10/rabbitmq-server-generic-unix-3.9.10.tar.xz

# xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz      #不保留原文件解压
# tar -xvf rabbitmq-server-generic-unix-3.6.15.tar -C /usr/local/
# ln -sv /usr/local/rabbitmq_server-3.6.15/ /usr/local/rabbitmq

# vim /etc/profile
#set rabbitmq environment
export PATH=$PATH:/usr/local/rabbitmq/sbin
# source /etc/profile

# rabbitmq-server    #前台启动rabbitmq
# rabbitmq-server -detached   #-detached代表后台守护进程方式启动。  
# rabbitmqctl stop 关闭服务
# rabbitmqctl status   #查看状态 
# rabbitmqctl cluster_status #查看集群状态
# rabbitmqctl list_users  列出角色

默认配置文件:

https://github.com/rabbitmq/rabbitmq-server/blob/master/deps/rabbit/docs/rabbitmq.conf.example

说明: Linux服务器的主机名不能用数字,否则mq无法启动

RabbitMQ yum源安装

访问:

https://packagecloud.io/rabbitmq/rabbitmq-server/packages/el/7/rabbitmq-server-3.8.26-1.el7.noarch.rpm

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash

Install

sudo yum install rabbitmq-server-3.8.26-1.el7.noarch

yum安装配置文件位置如下:

启动rabbitmq常用的配置参数:

# cat /etc/rabbitmq/rabbitmq.conf 
loopback_users.guest = false
listeners.tcp.default = 5672
#listeners.tcp.local = 127.0.0.1:5672
default_pass = admin
default_user = admin
management.tcp.port = 15672
management.tcp.ip = 0.0.0.0
default_vhost = /
default_permissions.configure = .*
default_permissions.read = .*
default_permissions.write= .*
default_user_tags.administrator = true

启动rabbitmq常用插件的配置参数:

# cat /etc/rabbitmq/enabled_plugins
[rabbitmq_delayed_message_exchange,rabbitmq_management]. 

注意:这两个参数互斥

listeners.tcp.default = 5672
#listeners.tcp.local = 127.0.0.1:5672

RabbitMQ rpm包安装

https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.25

RabbitMQ docker安装

https://www.rabbitmq.com/download.html

# for RabbitMQ 3.9, the latest series
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management

# for RabbitMQ 3.8,
# 3.8.x support timeline: https://www.rabbitmq.com/versions.html
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.8-management

# latest RabbitMQ 3.11
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.11-management

默认账号/密码:  guest/guest

RabbitMQ管理后台

(3.3.1版本以后默认不允许用guest远程管理。可以手动创建管理员帐号来远程管理,具体参见4.4)

插件地址:https://www.rabbitmq.com/community-plugins.html

启动Web管理插件

rabbitmq-plugins list
rabbitmq-plugins enable rabbitmq_management   #启动插件
netstat -lntup|egrep "epmd|beam"

image-20230612173240442

4369端口是erlang发现端口,5672是client端通信口,15672是管理界面UI端口,25672是server间内部通信口

image-20230612173251021

配置访问账号密码和权限并删除匿名用户:

默认网页是不允许访问的,需要增加一个用户修改一下权限,命令如下:

# rabbitmqctl list_users  列出角色
# rabbitmqctl add_user admin admin123   #添加admin用户和设置密码为admin123
Creating user "admin"
# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"    #添加权限(使admin用户对虚拟主机“/” 具有所有权限):
Setting permissions for user "admin" in vhost "/"
# rabbitmqctl set_user_tags admin administrator  #设置用户角色
Setting tags for user "admin" to [administrator]

现在在浏览器输入服务器IP:15672就可以看到RabbitMQ的WEB管理界面了

image-20230612173321788

image-20230612173328800

image-20230612173334958

image-20230612173341235

概念

  • Broker:简单来说就是消息队列服务器实体。
  • Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
  • Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
  • Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
  • Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
  • vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
  • producer:消息生产者,就是投递消息的程序。
  • consumer:消息消费者,就是接受消息的程序。
  • channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务

RabbitMQ设置管理权限

https://www.cnblogs.com/williamjie/p/9481774.html

Rabbitmq服务器的主要通过rabbitmqctl和rabbimq-plugins两个工具来管理,以下是一些常用功能。

1)服务器启动与关闭

启动: rabbitmq-server -detached

关闭: rabbitmqctl stop

若单机有多个实例,则在rabbitmqctl后加-n指定名称

2)插件管理

开启某个插件:rabbitmq-plugins enable xxx

关闭某个插件:rabbitmq-plugins disable xxx

3)virtual_host管理

新建virtual_host: rabbitmqctl add_vhost xxx

撤销virtual_host: rabbitmqctl delete_vhost xxx

4)用户管理

新建用户: rabbitmqctl add_user xxx pwd

删除用户: rabbitmqctl delete_user xxx

改密码: rabbimqctl change_password {username} {newpassword}

设置用户角色: rabbitmqctl set_user_tags {username} {tag ...}

Tag可以为 administrator,monitoring, management

5)权限管理

      权限设置:set_permissions [-pvhostpath] {user} {conf} {write} {read}
               Vhostpath
               Vhost路径
               user
     用户名
              Conf
      一个正则表达式match哪些配置资源能够被该用户访问。
              Write
      一个正则表达式match哪些配置资源能够被该用户读。
               Read
      一个正则表达式match哪些配置资源能够被该用户访问。

6)获取服务器状态信息

       服务器状态:rabbitmqctl status
       队列信息:rabbitmqctl list_queues [-p vhostpath] [queueinfoitem ...]
                Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,
                messages_unacknowledged,messages,consumers,memory
       Exchange信息:rabbitmqctllist_exchanges[-p vhostpath] [exchangeinfoitem ...]
                 Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments.
       Binding信息:rabbitmqctllist_bindings[-p vhostpath] [bindinginfoitem ...]       
                 Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments
       Connection信息:rabbitmqctllist_connections [connectioninfoitem ...]
       Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。
       Channel信息:rabbitmqctl  list_channels[channelinfoitem ...]
      Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked

RabbitMQ docker搭建高可用集群

在多台机器之间部署rabbitmq的cluster,要求如下:这几个节点需要再同一个局域网内;这几个节点需要有相同的erlang cookie,否则不能正常通信,

https://blog.csdn.net/qq_28533563/article/details/107932737 传统部署高可用

(拷贝.cookie时,各节点都必须停止MQ服务

RabbitMQ 有三种模式:单机模式普通集群模式镜像集群模式。单机模式即单独运行一个 rabbitmq 实例,而集群模式需要创建多个 rabbitmq实例。

1、普通集群模式

概念:

默认的集群模式。需要创建多个 RabbitMQ 节点。但对于 Queue 和消息来说,只存在于其中一个节点,其他节点仅同步元数据,即队列的结构信息。

当消息进入Queue后,如果 Consumer 从创建Queue的这个节点消费消息时,可以直接取出来;但如果 consumer 连接的是其他节点,那 rabbitmq 会把 queue 中的消息从创建它的节点中取出并经过连接节点转发后再发送给consumer。

所以 consumer 应尽量连接每一个节点。并针对同一个逻辑队列,要在多个节点建立物理 Queue。否则无论 consumer 连接哪个节点,都会从创建 queue 的节点获取消息,会产生瓶颈。

image-20230612173732002

特点:

(1)Exchange 的元数据信息在所有节点上是一致的,而 Queue(存放消息的队列)的完整数据则只会存在于创建它的那个节点上。其他节点只知道这个 queue 的 metadata 信息和一个指向 queue 的 owner node 的指针;

(2)RabbitMQ 集群会始终同步四种类型的内部元数据(类似索引):

a.队列元数据:队列名称和它的属性;

b.交换器元数据:交换器名称、类型和属性;

c.绑定元数据:一张简单的表格展示了如何将消息路由到队列;

d.vhost元数据:为 vhost 内的队列、交换器和绑定提供命名空间和安全属性;

因此,当用户访问其中任何一个 RabbitMQ 节点时,通过 rabbitmqctl 查询到的元数据信息都是相同的。

(3)无法实现高可用性,当创建 queue 的节点故障后,其他节点是无法取到消息实体的。如果做了消息持久化,那么得等创建 queue 的节点恢复后,才可以被消费。如果没有持久化的话,就会产生消息丢失的现象。

2、镜像集群模式

概念:

把队列做成镜像队列,让各队列存在于多个节点中,属于 RabbitMQ 的高可用性方案。镜像模式和普通模式的不同在于,queue和 message 会在集群各节点之间同步,而不是在 consumer 获取数据时临时拉取。

特点: (1)实现了高可用性。部分节点挂掉后,不会影响 rabbitmq 的使用。

(2)降低了系统性能。镜像队列数量过多,大量的消息同步也会加大网络带宽开销。

(3)适合对可用性要求较高的业务场景。

普通集群部署

https://www.cnblogs.com/alan6/p/11691229.html docker部署高可用

https://blog.csdn.net/belonghuang157405/article/details/83540148

环境: 
192.168.137.{7,6,5}
# cat /etc/hosts   #解析主机名,后面加入集群需要使用
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.137.7    master 
192.168.137.6    node01
192.168.137.5    node02

一、拉取rabbitmq镜像(每个机器上都要执行)

docker pull rabbitmq:3.8-management

二、创建映射数据卷目录(每个机器上都要执行)

mkdir -p /data/rabbitmqcluster
cd /data/rabbitmqcluster
mkdir -p rabbitmq

三、启动rabbitmq容器

192.168.137.7机器上执行:

docker run -itd --hostname `hostname` \
--name rabbitmq1 \
--restart always \
--network host \
--privileged=true \
-v /data/rabbitmqcluster/rabbitmq:/var/lib/rabbitmq \
-e RABBITMQ_ERLANG_COOKIE='WSGIJHFHFK' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:3.8-management

192.168.137.6机器上执行:

docker run -d --hostname `hostname` \
--name rabbitmq2 \
--restart always \
--network host \
--privileged=true \
-v /data/rabbitmqcluster/rabbitmq:/var/lib/rabbitmq \
-e RABBITMQ_ERLANG_COOKIE='WSGIJHFHFK' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:3.8-management

192.168.137.5机器上执行:

docker run -d --hostname `hostname` \
--name rabbitmq3 \
--restart always \
--network host \
--privileged=true \
-v /data/rabbitmqcluster/rabbitmq:/var/lib/rabbitmq \
-e RABBITMQ_ERLANG_COOKIE='WSGIJHFHFK' \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:3.8-management

主要参数:

netstat -lntup|egrep "epmd|beam"

-p 15672:15672 \  # management 界面管理访问端口
-p 25672:25672 \  #集群通信地址
-p 5672:5672 \   # amqp 访问端口
-p 4369:4369 \

Erlang Cookie 值必须相同,也就是一个集群内 RABBITMQ_ERLANG_COOKIE 参数的值必须相同。因为 RabbitMQ 是用Erlang实现的,Erlang Cookie 相当于不同节点之间通讯的密钥,Erlang节点通过交换 Erlang Cookie 获得认证。

四、加入节点到集群

RabbitMQ 集群的搭建需要选择其中任意一个节点为基准,将其它节点逐步加入。

这里我们以 master 为基准节点,将 node01 和 node02 加入集群。

在 node01 和 node02 上执行以下命令:

# 1.停止服务
rabbitmqctl stop_app
# 2.重置状态
rabbitmqctl reset
# 3.节点加入, 在一个node加入cluster之前,必须先停止该node的rabbitmq应用,即先执行stop_app
# node01 加入 master, node02 加入master
rabbitmqctl join_cluster rabbit@master
# 4.启动服务
rabbitmqctl start_app

设置master

docker exec -it rabbitmq1  bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
exit

设置 node01,加入到集群:

docker exec -it rabbitmq2 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@master
rabbitmqctl start_app
exit

设置node02,加入到集群:

docker exec -it rabbitmq3 bash
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster --ram rabbit@master
rabbitmqctl start_app
exit

主要参数:

  • --ram表示设置为内存节点,忽略此参数默认为磁盘节点。该配置启动了3个节点,1个磁盘节点和2个内存节点。设置好之后,使用 http://ip:15672 进行访问,账号密码:admin/admin

  • join_cluster 命令有一个可选的参数--ram,该参数代表新加入的节点是内存节点,默认是磁盘节点。

如果是内存节点,则所有的队列、交换器、绑定关系、用户、访问权限和 vhost 的元数据都将存储在内存中

如果是磁盘节点,则存储在磁盘中。

内存节点可以有更高的性能,但其重启后所有配置信息都会丢失,因此RabbitMQ 要求在集群中至少有一个磁盘节点,其他节点可以是内存节点。当内存节点离开集群时,它可以将变更通知到至少一个磁盘节点;然后在其重启时,再连接到磁盘节点上获取元数据信息。除非是将 RabbitMQ 用于 RPC 这种需要超低延迟的场景,否则在大多数情况下,RabbitMQ 的性能都是够用的,可以采用默认的磁盘节点的形式。

这里为了演示, node02 我就设置为内存节点。

另外,如果节点以磁盘节点的形式加入,则需要先使用 reset 命令进行重置,然后才能加入现有群集,重置节点会删除该节点上存在的所有的历史资源和数据。采用内存节点的形式加入时可以略过 reset 这一步,因为内存上的数据本身就不是持久化的。

image-20230612174329326

详解在RabbitMQ集群中有内存节点和磁盘节点之分:

  • 内存节点(ram):就是将元数据都放在内存里,内存节点的话,只要服务重启,该节点的所有数据将会丢失
  • 硬盘节点(disc):就是将元数据都放在硬盘里,所以服务重启的话,数据也还是会存在的,所以像我们的持久化消息、持久化队列等,都会放置硬盘节点保存

在RabbitMQ集群里,至少有一个磁盘节点,它用来持久保存我们的元数据,如果RabbitMQ是单节点运行,则默认就是磁盘节点。但是为了提高性能,其实不需要所有节点都是disc的节点,根据需求分配即可

#通过命令修改节点的类型 [disc | ram]
#如果集群已经搭建好,可以使用命令 rabbitmqctl change_cluster_node_type {disc,ram} 切换节点类型。
#下面将 node02更改为磁盘节点类型:
[root@node02~]# rabbitmqctl stop_app
[root@node02~]# rabbitmqctl change_cluster_node_type disc
[root@node02~]# rabbitmqctl start_app

镜像集群部署

1、策略policy概念

使用RabbitMQ镜像功能,需要基于RabbitMQ策略来实现,策略policy是用来控制和修改群集范围的某个vhost队列行为和Exchange行为。策略policy就是要设置哪些Exchange或者queue的数据需要复制、同步,以及如何复制同步。

为了使队列成为镜像队列,需要创建一个策略来匹配队列,设置策略有两个键ha-modeha-params(可选)。ha-params根据ha-mode设置不同的值,下表说明这些key的选项。

image-20230612174505140

  • ha-mode:all 代表mq中包括交换器、元数据、队列等信息均进行多节点的镜像存储,在集群中所有的节点上进行镜像
  • ha-sync-mode: automatic代表整个同步过程是自动的,在集群节点宕机重新连接后自动同步

最后,实现镜像模式集群。进入rabbitmq1容器中

docker exec -it rabbitmq1 bash

执行如下命令:ha-all为策略名称,ha-mode为同步模式。(当然也可以在界面上添加)

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all", "ha-sync-mode": "automatic"}'

说明:在cluster中任意节点启用策略,策略会自动同步到集群节点

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all", "ha-sync-mode": "automatic"}'

这行命令在vhost创建了一个策略,策略名称为ha-all queue,策略模式为 all 即复制到所有节点,包含新增节点,策略正则表达式为 "\^" 表示匹配所有队列名称。

image-20230612174605597

例如:

rabbitmqctl set_policy ha-all "^message" '{"ha-mode":"all", "ha-sync-mode": "automatic"}'

备注:"\^message"这个规则要根据自己修改,这个是指同步message开头的队列名称,我们配置时使用的应用于所有队列,所以表达式为"\^"

===========================================================================

界面上添加策略

登录rabbitmq管理页面 --> Admin --> Policies --> Add / update a policy

image-20230612174700271

  • Name:随便取,策略名称
  • Pattern:^匹配符,只有一个^代表匹配所有
  • Definition:ha-mode=all为匹配类型,分为3种模式:all(表示所有的queue)

查看效果

此策略会同步所在同一VHost中交换器队列数据。设置好policy之后,使用 http://ip:15672 再次进行访问,可以看到队列镜像同步

image-20230612174746543

Rabbitmq网络分片

集群操作命令汇总

rabbitmq查看集群状态信息
rabbitmqctl cluster_status

启动rabbitmq
rabbitmqctl start_app

停止rabbitmq
rabbitmqctl stop_app

rabbitmq 查看策略
rabbitmqctl list_policies

rabbitmq 查看所有队列信息
rabbitmqctl list_queues

还原 rabbitmq 清除所有队列
rabbitmqctl reset

rabbitmq 查看用户
rabbitmqctl list_users

rabbitmq添加用户
rabbitmqctl add_user admin admin

rabbitmq设置admin用户权限
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

移除某个集群节点:一般情况当节点故障时,在正常的节点中,移除该故障节点
rabbitmqctl -n rabbit@rabbitmq01 forget_cluster_node rabbit@rabbitmq03

如果需要使用网桥模式部署rabbitmq

docker run -d --hostname rabbitmq-171   --add-host="rabbitmq-171":10.0.1.171 --add-host="rabbitmq-172":10.0.1.172  --name rabbitmq-171 --restart=always -p "4369:4369"  -p "5672:5672"  -p "15672:15672"  -p "25672:25672"   -v /data/rabbitmqdata:/var/lib/rabbitmq:z  -e RABBITMQ_ERLANG_COOKIE='rabbitClusterCookie' 10.0.1.171:5000/mid/rabbitmq:management

docker run -d --hostname rabbitmq-172   --add-host="rabbitmq-171":10.0.1.171 --add-host="rabbitmq-172":10.0.1.172  --name rabbitmq-172 --restart=always -p "4369:4369"  -p "5672:5672"  -p "15672:15672"  -p "25672:25672"  -v /data/rabbitmqdata:/var/lib/rabbitmq:z  -e RABBITMQ_ERLANG_COOKIE='rabbitClusterCookie' 10.0.1.171:5000/mid/rabbitmq:management

rabbitmq监控

另外一个rabbitmq的监控插件,请参考 rmqmonitor, issue

https://github.com/barryz/rmqmonitor

https://github.com/open-falcon/falcon-plus/issues/443

rabbitmq插件

rabbitmq_delayed_message_exchange延迟插件

如果yum安装的rabbitmq,先rpm -ql rabbitmq-server,找到plugins目录下,然后把下载好的插件copy到plugins目录。最后启动插件rabbitmq-plugins enable rabbitmq_delayed_message_exchange

免责声明: 本文部分内容转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除。