当前位置:   article > 正文

RabbitMQ 安装及管理_rabbitmq 安装management

rabbitmq 安装management

RabbitMQ 安装及管理

01、Win10 安装

安装步骤:1.安装Erlang=》2.安装RabbitMQ=》3.激活RabbitMQ's Management Plugin可视化插件

RabbitMQ是采用Erlang语言开发的,所以系统环境必须提供Erlang环境
Erlang和RabbitMQ版本的按照比较: https://www.rabbitmq.com/which-erlang.html

1、安装Erlang

20210314201339

  • 官网下载地址:https://www.erlang.org/downloads
  • 历史版本下载:http://erlang.org/download/
  • 选择OTP 23.2 Windows 64-bit Binary File
  • 运行otp_win64_23.2.exe(默认next和install )
  • 设置环境变量:
    • ERLANG_HOME:D:\xx\erl-23.2(erlang安装路径)
    • Path追加:;%ERLANG_HOME%\bin
    • 打开CMD输入erl, 提示版本信息: Eshell V11.1.4 (abort with ^G), 说明安装成功

2、安装RabbitMQ

  • 官网下载地址:https://www.rabbitmq.com/install-windows.html
  • 历史版本下载:https://github.com/rabbitmq/rabbitmq-server/releases
  • 选择rabbitmq-server-3.8.14.exe,然后运行安装RabbitMQ
  • 设置环境变量:
    • RABBITMQ_SERVER:D:\rabbitmq\rabbitmq-server-3.8.14(安装路径)
    • Path追加:;%RABBITMQ_SERVER%\sbin
    • 命令行输入(出现如下信息说明安装成功并且启动):rabbitmqctl status
D:\Environment\RabbitMQ Server\rabbitmq_server-3.8.14\sbin>rabbitmqctl status
Status of node rabbit@LAPTOP-671C76TJ ...
 [1mRuntime [0m

OS PID: 7916
OS: Windows
Uptime (seconds): 2291
Is under maintenance?: false
RabbitMQ version: 3.8.14
Node name: rabbit@LAPTOP-671C76TJ
Erlang configuration: Erlang/OTP 23 [erts-11.1.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1]
Erlang processes: 473 used, 1048576 limit
Scheduler run queue: 1
Cluster heartbeat timeout (net_ticktime): 60

 [1mPlugins [0m

Enabled plugin file: c:/Users/lenovo/AppData/Roaming/RabbitMQ/enabled_plugins
Enabled plugins:

 * rabbitmq_management
 * amqp_client
 * rabbitmq_web_dispatch
 * cowboy
 * cowlib
 * rabbitmq_management_agent
// ........中间省略

Interface: [::], port: 25672, protocol: clustering, purpose: inter-node and CLI tool communication
Interface: [::], port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Interface: 0.0.0.0, port: 5672, protocol: amqp, purpose: AMQP 0-9-1 and AMQP 1.0
Interface: [::], port: 15672, protocol: http, purpose: HTTP API
Interface: 0.0.0.0, port: 15672, protocol: http, purpose: HTTP API
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 访问:http://localhost:15672/,发现无法访问,因为还未激活管理插件

3、激活RabbitMQ’s Management Plugin可视化插件

该插件为rabbitmq提供web管理界面,可以方便管理rabbitmq,登录地址:localhost:15672,用户名和密码都为guest

  • 进入/sbin目录输入命令:rabbitmq-plugins enable rabbitmq_management
  • 出现如下信息表示成功:
D:\Environment\RabbitMQ Server\rabbitmq_server-3.8.14\sbin>rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@LAPTOP-671C76TJ:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@LAPTOP-671C76TJ...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch

started 3 plugins.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 也能通过查看插件列表判断:rabbitmq-plugins list(标记为E或e的已经启用的插件)
C:\Users\lenovo>rabbitmq-plugins list
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: * = running on rabbit@LAPTOP-671C76TJ
 |/
[E*] rabbitmq_management               3.8.14
// ......省略
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 浏览器访问:http://localhost:15672/,账号密码:guest/guest。到此windows安装RabbitMQ已全部完成

说明:rabbitmq默认用户guest 默认情况只能在localhost本机下访问。如果想远程访问有2种办法:

1、添加一个远程登录的用户

# 新增用户
rabbitmqctl add_user admin password
# 设置用户分配操作权限
rabbitmqctl set_user_tags admin administrator
# 为用户添加资源权限
rabbitmqctl.bat set_permissions -p / admin ".*" ".*" ".*"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2、修改默认配置文件(查看配置文件路径两种方式:)
2-1、rabbitmqctl status,查找Config files即可(advanced.config)
2-2、登录web管理界面:Overview=》Nodes=》Node Name=》Config file(advanced.config)

[{rabbit, [{loopback_users, [guest]}]}].
  • 1

4、如上是通过.exe方式安装的,所以自动帮我们安装好了服务启动和服务暂时删除等*

20210418110505

20210418110803

*5、如果是通过 .zip 文件安装的话需要手动安装RabbitMQ服务

5.1、以应用方式启动(如何没有install安装成windows服务)

# 前台启动
rabbitmq-server
# 后台启动
rabbitmq-server -detached
  • 1
  • 2
  • 3
  • 4

5.2、Rabbitmq服务的启动和关闭:(以服务方式启动,只有Windows能用)

# 安装服务:
rabbitmq-service install
# 删除服务:
rabbitmq-service remove
# 启动服务:
rabbitmq-service start
# 重启服务:
rabbitmq-service restart
# 停止服务:
rabbitmq-service stop
# 使服务有效:
rabbitmq-service enable 
# 使服务无效:
rabbitmq-service disable
# 查看帮助:
rabbitmq-service help
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

当rabbitmq-service install后默认服务是enable的,如果这时设置服务为disable的话,rabbitmq-service start就会报错。
当rabbitmq-service start正常启动服务之后,使用disable是没有效果的

02、Linux 安装

Erlang和RabbitMQ版本的按照比较: https://www.rabbitmq.com/which-erlang.html
RabbitMQ是采用Erlang语言开发的,所以系统环境必须提供Erlang环境,第一步就是安装Erlang
环境准备:CentOS7.x+ / Erlang
Erlang下载地址:https://github.com/rabbitmq/erlang-rpm/releases
RabbitMQ下载地址:https://github.com/rabbitmq/rabbitmq-server/releases

方式一:下载固定版本

## 1. 首先在Linux上进行一些软件的准备工作,yum下来一些基础的软件包
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz

## 2. 下载RabbitMQ所需软件包(本神在这里使用的是 RabbitMQ3.8.14)
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.2.7/erlang-23.2.7-1.el7.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-3.8.14-1.el7.noarch.rpm

## 3. 安装服务命令
rpm -ivh erlang-23.2.7-1.el7.x86_64.rpm
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.8.14-1.el7.noarch.rpm
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

RPM方式安装,查看系统版本号

[root@CentOS7 ~]# lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	CentOS
Description:	CentOS Linux release 7.8.2003 (Core)
Release:	7.8.2003
Codename:	Core
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1、 Erlang安装(下载地址:https://www.erlang-solutions.com/downloads/)

rpm -Uvh esl-erlang_23.2-1~centos~7_amd64.rpm
# 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

# 2.安装erlang(安装的是最新版本,所以用该方式安装Rabbitmq需要查看是否能匹配到erlang)
yum install -y erlang

# 3.安装成功后测试
erl -v
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2、安装socat(EL依赖该组件)

yum install -y socat
  • 1

3、下载安装rabbitmq

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.13/rabbitmq-server-3.8.13-1.el8.noarch.rpm
rpm -Uvh rabbitmq-server-3.8.13-1.el8.noarch.rpm
  • 1
  • 2

4、启动rabbitmq服务

############服务方式启动############
# 启动服务
systemctl start rabbitmq-server
# 重启服务
systemctl restart rabbitmq-server
# 停止服务
systemctl stop rabbitmq-server
# 查看服务状态
systemctl status rabbitmq-server
# 开机启动服务
systemctl enable rabbitmq-server

############应用方式启动############
# 前台启动
rabbitmq-server
# 后台启动
rabbitmq-server -detached
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

5、默认情况下,rabbitmq是没有安装web端的客户端插件,需要安装才可以生效

# 安装RabbitMQ管理界面插件
rabbitmq-plugins enable rabbitmq_management

# 重启服务生效
systemctl restart rabbitmq-server
  • 1
  • 2
  • 3
  • 4
  • 5

说明:rabbitmq有一个默认账号和密码是:guest 默认情况只能在localhost本机下访问,所以需要添加一个远程登录的用户。
一定要记住,在对应服务器(阿里云,腾讯云等)的安全组中开放15672的端口。

6、添加远程登录用户

# 新增用户
rabbitmqctl add_user admin password
# 设置用户分配操作权限
rabbitmqctl set_user_tags admin administrator
# 为用户添加资源权限
rabbitmqctl.bat set_permissions -p / admin ".*" ".*" ".*"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

用户级别:

  • 1、administrator 可以登录控制台、查看所有信息、可以对rabbitmq进行管理
  • 2、monitoring 监控者 登录控制台,查看所有信息
  • 3、policymaker 策略制定者 登录控制台,指定策略
  • 4、managment 普通管理员 登录控制台

03、Docker 安装

虚拟化容器技术—docker 的安装

# 1.yum 包更新到最新
yum update
# 2.安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
# 3.设置yum源为阿里云
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4.安装docker
yum install -y docker-ce
# 5.安装后查看docker版本
docker -v
# 6.安装加速镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0wrdwnn6.mirror.aliyuncs.com"]
}
EOF
# 7.刷新配置和重启服务
sudo systemctl daemon-reload && sudo systemctl restart docker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

docker-compose 的安装

# curl方式安装
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 授权
sudo chmod +x /usr/local/bin/docker-compose

# 查看版本
docker-compose --version

# 命令补齐安装
sudo curl -L https://raw.githubusercontent.com/docker/compose/1.26.2/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

参考:1:https://www.rabbitmq.com/download.html、2:https://registry.hub.docker.com/_/rabbitmq/

1、dockere安装rabbitmq

# 获取rabbit镜像
docker pull rabbitmq:management

# 创建并运行容器(简单创建,默认用户名密码为:guest)
docker run -itd --name=myrabbit -p 15672:15672 rabbitmq:management

# 创建并运行容器(运行时设置用户和密码)
docker run -itd --name myrabbit \
 -e RABBITMQ_DEFAULT_USER=admin \
 -e RABBITMQ_DEFAULT_PASS=admin \
 -p 15672:15672 \
 -p 5672:5672 \
 -p 25672:25672 \
 -p 61613:61613 \
 -p 1883:1883 \
 rabbitmq:management

# 查看日志
docker logs -f myrabbit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

2、docker-compose安装rabbitmq

# 创建目录
$ mkdir -p /usr/local/docker-compose/rabbitmq
# 编写docker-compose.yml文件
$ vi /usr/local/docker-compose/rabbitmq/docker-compose.yml
# 后台启动
$ docker-compose up -d
# rabbitmq web端默认关闭的,手动开启
$ docker exec -it rabbitmq rabbitmq-plugins enable rabbitmq_management
# 或者
$ docker-compose exec rabbitmq rabbitmq-plugins enable rabbitmq_management
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

docker-compose.yml 文件内容如下:

version: "3.1"
services: 
  rabbitmq: 
    image: daocloud.io/library/rabbitmq:management
    container_name: rabbitmq
    restart: always
    ports: 
      - 5672:5672
      - 15672:15672
    volumes: 
      - ./data:/var/lib/rabbitmq
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

04、角色分类

**1、none:**不能访问management plugin

2、management:查看自己相关节点信息

  • 列出自己可以通过AMQP登入的虚拟机
  • 查看自己的虚拟机节点 virtual hosts的queues,exchanges和bindings信息
  • 查看和关闭自己的channels和connections
  • 查看有关自己的虚拟机节点virtual hosts的统计信息。包括其他用户在这个节点virtual hosts中的活动信息。

3、Policymaker

  • 包含management所有权限
  • 查看和创建和删除自己的virtual hosts所属的policies和parameters信息。

4、Monitoring

  • 包含management所有权限
  • 罗列出所有的virtual hosts,包括不能登录的virtual hosts。
  • 查看其他用户的connections和channels信息
  • 查看节点级别的数据如clustering和memory使用情况
  • 查看所有的virtual hosts的全局统计信息。

5、Administrator

  • 最高权限
  • 可以创建和删除virtual hosts
  • 可以查看,创建和删除users
  • 查看创建permisssions
  • 关闭所有用户的connections

05、常用命令

插件的启用和关闭命令:rabbitmq-plugins

1、list命令

# -v 显示所有插件的详情(详细)
# -m 仅仅只显示插件的名称 (简约)
# -E 仅仅只显示显式启用的插件
# -e 仅仅只显示显式、隐式启用的插件
# <pattern> 表示用于过滤插件名称表达式

# 查看插件列表,每行一个(标记为E*或e*的已经启用的插件,没标记的为未启用插件)
rabbitmq-plugins list

# 显示所有的插件,并且显示插件的版本号和描述信息
rabbitmq-plugins list -v

# 显示所有名称含有 "management" 的插件
rabbitmq-plugins list -v management

# 显示所有显示或者隐式启动的插件
rabbitmq-plugins list -e rabbit
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2、enable & disable & set 命令

--offline 仅仅修改启动的插件文件
--online 将与正在运行的代理连接失败视为致命错误
<plugin> 一个或多个插件名称

# 启动指定插件:
rabbitmq-plugins enable plugin-name
# 关闭指定插件:
rabbitmq-plugins disable plugin-name

# 禁用所有插件
rabbitmq-plugins set
# 启用management插件和它所依赖的插件,禁用其他所有插件
rabbitmq-plugins set rabbitmq_management
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

管理平台操作命令:rabbitmqctl:

节点管理:

# 查看节点状态
rabbitmqctl status

# 启动应用(在Erlang VM运行的情况下启动RabbitMQ应用)
rabbitmqctl start_app

# 关闭应用
rabbitmqctl stop_app

# 移除所有数据(要在 rabbitmqctl stop_app 之后使用)
rabbitmqctl reset

# 清理数据并且重启
rabbitmqctl stop_app && rabbitmqctl reset && rabbitmqctl start_app
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

用户管理:

  1. 用户列表和角色:rabbitmqctl list_users
  2. 添加用户:rabbitmqctl add_user <username> <password>
  3. 删除用户:rabbitmqctl delete_user <username>
  4. 修改密码:rabbitmqctl change_password <username> <newpass>
  5. 清除密码:rabbitmqctl clear_password <username>
  6. 验证用户:rabbitmqctl authenticate_user <username> <passWord>
  7. 设置用户角色:rabbitmqctl set_user_tags <username> <tag1> <tag2>...
    tag为:none、management、policymaker、monitoring、administrator
  8. 删除用户所有角色:rabbitmqctl set_user_tags <username>
  9. 设置用户权限:rabbitmqctl set_permissions <-p vhostpath> <username> ".*" ".*" ".*"
  10. 清除用户权限:rabbitmqctl clear_permissions <-p vhostpath> <username>
  11. 查看用户权限:rabbitmqctl list_user_permissions <username>
  12. 查看指定虚拟主机上的所有用户的所有权限:rabbitmqctl list_permissions [-p vhostpath]

角色说明:

  • none:不能访问management plugin插件

  • management:用户可以访问management插件

  • policymaker:用户可以访问management插件,并管理他们有权访问的vhost的策略和参数。

  • monitoring:用户可以访问管理插件,查看所有连接和通道以及与节点相关的信息。

  • administrator:所有权限

权限类型:

  • Configure:创建与销毁资源
  • Write:写入资源
  • Read:读取资源
# 查看用户列表:
[root@CentOS7 ~]# rabbitmqctl list_users
Listing users ...
user	tags
user_admin	[administrator, monitoring]
guest	[administrator]

# 创建用户:
[root@CentOS7 ~]# rabbitmqctl add_user user_admin password
Adding user "user_admin" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.

# 删除用户:
[root@CentOS7 ~]# rabbitmqctl delete_user user_admin
Deleting user "user_admin" ...

# 修改密码:
[root@CentOS7 ~]# rabbitmqctl change_password user_admin 123456
Changing password for user "user_admin" ...

# 清理密码:
[root@CentOS7 ~]# rabbitmqctl clear_password user_admin
Clearing password for user "user_admin" ...

# 验证账号密码
[root@CentOS7 ~]# rabbitmqctl authenticate_user user_admin 123456
Authenticating user "user_admin" ...
Success

# 设置用户角色
[root@CentOS7 ~]# rabbitmqctl set_user_tags user_admin administrator
Setting tags for user "user_admin" to [administrator] ...

# 删除用户所有角色
[root@CentOS7 ~]# rabbitmqctl set_user_tags user_admin
Setting tags for user "user_admin" to [] ...

# 设置用户权限:
[root@CentOS7 ~]# rabbitmqctl set_permissions -p / user_admin ".*" ".*" ".*"
Setting permissions for user "user_admin" in vhost "/" ...

# 清除用户权限:
[root@CentOS7 ~]# rabbitmqctl clear_permissions -p / user_admin
Clearing permissions for user "user_admin" in vhost "/" ...

# 查看用户权限
[root@CentOS7 ~]# rabbitmqctl list_user_permissions user_admin
Listing permissions for user "user_admin" ...
vhost	configure	write	read
/	    .*	        .*	    .*

# 查看指定虚拟主机上的所有用户的所有权限
[root@CentOS7 ~]# rabbitmqctl list_permissions -p /
Listing permissions for vhost "/" ...
user	     configure	write	read
user_admin	 .*	        .*	    .*
guest	     .*	        .*	    .*
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

virtual_host管理管理:

  1. 列出所有虚拟主机:rabbitmqctl list_vhosts [name,tracing]
    name:罗列出所有虚拟机,tracing:表示是否使用了 RabbitMQ 的 trace 功能
  2. 创建虚拟主机:rabbitmqctl add_vhost [vhostpath]
  3. 删除虚拟主机:rabbitmqctl delete_vhost [vhostpath]
# 创建/test虚拟主机
[root@CentOS7 ~]# rabbitmqctl add_vhost /test
Adding vhost "/test" ...

# 删除/test虚拟主机:
[root@CentOS7 ~]# rabbitmqctl delete_vhost /test
Deleting vhost "/test" ...

# 列出所有虚拟主机
[root@CentOS7 ~]# rabbitmqctl list_vhosts name tracing
Listing vhosts ...
name	tracing
/test	false
/	    false

# 列出虚拟主机上的所有权限:
[root@CentOS7 ~]# rabbitmqctl list_permissions -p /
Listing permissions for vhost "/" ...
user	configure	write	read
guest	.*	        .*	    .*
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

对象管理:

# 列出所有queue:
rabbitmqctl list_queues [-p vhost]
# 列出指定queue的信息:
rabbitmqctl list_queues [the queue name] messages_ready messages_unacknowledged
# 列出所有exchange:
rabbitmqctl list_exchanges
# 列出所有binding:
rabbitmqctl list_bindings
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

集群管理:

# 1、加入集群[--ram添加内存模式 默认disk模式]
rabbitmqctl join_cluster --ram rabbit@mq01

# 2、查看集群状态
rabbitmqctl cluster_status

# 3、更改节点模式[顺序 关闭运用-〉更改类型->开启运用]
rabbitmqctl stop_app  –停止运用服务
rabbitmqctl change_cluster_node_type disc/ram –更改节点为磁盘或内存节点
rabbitmqctl start_app –开启运用服务

# 4、创建策略(集群同步策略……)
set_policy [-p vhostpath] {name} {pattern} {definition} [priority]

# 5、查看策略
rabbitmqctl list_policies

# 6、移除远程offline的节点
# 1.节点2停掉应用
rabbitmqctl stop_app 
# 2.节点1执行删除
rabbitmqctl forget_cluster_node rabbit@mq02

# 7、设置集群名称
rabbitmqctl set_cluster_name cluster_name

# 8、设置镜像模式
Rabbit提供镜像功能,需要基于rabbitmq策略来实现,政策是用来控制和修改群集范围的某个vhost队列行为和Exchange行为 
set_policy [-p vhostpath] {name} {pattern} {definition} [priority]
rabbitmqctl set_policy ha-all "^ha." "{""ha-mode"":""all""}"
rabbitmqctl set_policy ha-all "^" "{""ha-mode"":""all"",""ha-sync-mode"":""automatic""}"
rabbitmqctl set_policy -p demo  ha-all "^" "{""ha-mode"":""all"",""ha-sync-mode"":""automatic""}"

# 9、手动同步queue
rabbitmqctl sync_queue name

# 10、取消queue同步
rabbitmqctl cancel_sync_queue name

# 11、查看所有队列信息
rabbitmqctl list_queues

# 12、获取队列信息
rabbitmqctl list_queues[-p vhostpath] [queueinfoitem ...]
Queueinfoitem可以为:name,durable,auto_delete,arguments,messages_ready,messages_unacknowledged,messages,consumers,memory。

# 13、获取Exchange信息
rabbitmqctl list_exchanges[-p vhostpath] [exchangeinfoitem ...]
Exchangeinfoitem有:name,type,durable,auto_delete,internal,arguments。

# 14、获取Binding信息
rabbitmqctl list_bindings[-p vhostpath] [bindinginfoitem ...] 
Bindinginfoitem有:source_name,source_kind,destination_name,destination_kind,routing_key,arguments。

# 15、获取Connection信息
rabbitmqctl list_connections [connectioninfoitem ...]
Connectioninfoitem有:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。

# 16、获取Channel信息
rabbitmqctl list_channels[channelinfoitem ...]
Channelinfoitem有consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

参考资料:
https://segmentfault.com/a/1190000038393678
https://gblfy.blog.csdn.net/article/details/105737928
https://soulchild.cn/1774.html

06、默认端口及配置文件

1、默认相关端口

  • 4369:erlang发现口
  • 5672:RabbitMQ的通讯端口
  • 25672:RabbitMQ的节点间的CLI通讯端口是
  • 15672:后台管理界面ui端口,进入管理后台时访问url如:http://localhost:15672/
  • 1883,8883:MQTT插件启动时的端口。
  • 61613、61614:STOMP客户端插件启用的时候的端口。
  • 15674、15675:基于webscoket的STOMP端口和MOTT端口

2、默认配置文件

官网给出的配置文件模板rabbitmq.conf.exampleadvanced.config.example

官方建议配置文件的位置:
1、Linux系统:/etc/rabbitmq/rabbitmq.conf
2、Win10系统:C:/Users/用户名/AppData/Roaming/RabbitMQ/advanced.config

参考官网:
1:https://www.rabbitmq.com/documentation.html
2:https://www.rabbitmq.com/configure.html#config-items

1、RabbitMQ默认情况下有一个配置文件,定义了RabbitMQ的相关配置信息,默认情况下能够满足日常的开发需求。如果需要修改需要,需要自己创建一个配置文件进行覆盖。

2、RabbitMQ有三个配置文件:

主配置文件(rabbitmq.conf),Erlang术语格式配置文件(advanced.config)、环境变量配置文件(rabbitmq-env.conf)

3、在RabbitMQ-3.8版本,默认没有配置文件。需要手动添加。默认配置文件位置:${RABBITMQ_HOME}/etc/rabbitmq/ 下

  • rabbitmq-env.conf:主要配置rabbitmq的环境变量的,如配置rabbitmq.conf和advanced.config文件的地址

  • rabbitmq.conf:主要配置RabbitMQ服务器和插件

  • advanced.config:某些配置设置不可能或难以使用sysctl格式进行配置。因此,可以使用Erlang术语格式的其他配置文件(与rabbitmq.config相同)。该文件通常命名为advanced.config。它将与Rabbitmq.conf中提供的配置合并。

以下是三个配置文件示例的链接:
**参考文章:**https://www.cnblogs.com/masy-lucifer/p/13551067.html

1、rabbitmq.config:https://www.cnblogs.com/masy-lucifer/p/13551090.html

2、advanced.config:https://www.cnblogs.com/masy-lucifer/p/13551106.html

例子:现在想把默认端口5672改成56720,并且允许远程访问。把web管理默认端口15672改成56271。只需如下配置:

$ vim /etc/rabbitmq/rabbitmq.conf

# AMQP 0-9-1 and 1.0 port,默认5672,允许远程访问
listeners.tcp.default = 0.0.0.0:56720
# web管理,默认15672
management.tcp.port = 56721
management.tcp.ip   = 0.0.0.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

07、可视化管理页面详解

rabbitmq-management是RabbitMq web管理端,用的是erlang的cowboy框架进行开发。web页面包括Overview(概述)、Connections(连接)、Channels(通道)、Exchanges(交换器)、Queues(队列)、Admin(用户管理)。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号