赞
踩
安装步骤:1.安装
Erlang
=》2.安装RabbitMQ
=》3.激活RabbitMQ's Management Plugin
可视化插件RabbitMQ是采用Erlang语言开发的,所以系统环境必须提供Erlang环境
Erlang和RabbitMQ版本的按照比较: https://www.rabbitmq.com/which-erlang.html
1、安装Erlang
OTP 23.2 Windows 64-bit Binary File
otp_win64_23.2.exe
(默认next和install )erl
, 提示版本信息: Eshell V11.1.4 (abort with ^G)
, 说明安装成功2、安装RabbitMQ
rabbitmq-server-3.8.14.exe
,然后运行安装RabbitMQD:\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
3、激活RabbitMQ’s Management Plugin可视化插件
该插件为rabbitmq提供web管理界面,可以方便管理rabbitmq,登录地址:localhost:15672,用户名和密码都为guest
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.
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
// ......省略
说明: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方式安装的,所以自动帮我们安装好了服务启动和服务暂时删除等*
*5、如果是通过 .zip 文件安装的话需要手动安装RabbitMQ服务
5.1、以应用方式启动(如何没有install安装成windows服务)
# 前台启动
rabbitmq-server
# 后台启动
rabbitmq-server -detached
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
当rabbitmq-service install后默认服务是enable的,如果这时设置服务为disable的话,rabbitmq-service start就会报错。
当rabbitmq-service start正常启动服务之后,使用disable是没有效果的
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
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、 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
2、安装socat(EL依赖该组件)
yum install -y socat
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
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
5、默认情况下,rabbitmq是没有安装web端的客户端插件,需要安装才可以生效
# 安装RabbitMQ管理界面插件
rabbitmq-plugins enable rabbitmq_management
# 重启服务生效
systemctl restart rabbitmq-server
说明:rabbitmq有一个默认账号和密码是:
guest
默认情况只能在localhost本机下访问,所以需要添加一个远程登录的用户。
一定要记住,在对应服务器(阿里云,腾讯云等)的安全组中开放15672
的端口。
6、添加远程登录用户
# 新增用户
rabbitmqctl add_user admin password
# 设置用户分配操作权限
rabbitmqctl set_user_tags admin administrator
# 为用户添加资源权限
rabbitmqctl.bat set_permissions -p / admin ".*" ".*" ".*"
用户级别:
虚拟化容器技术—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
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
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、none:**不能访问management plugin
2、management:查看自己相关节点信息
3、Policymaker
4、Monitoring
5、Administrator
插件的启用和关闭命令: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
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
管理平台操作命令: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
用户管理:
rabbitmqctl list_users
rabbitmqctl add_user <username> <password>
rabbitmqctl delete_user <username>
rabbitmqctl change_password <username> <newpass>
rabbitmqctl clear_password <username>
rabbitmqctl authenticate_user <username> <passWord>
rabbitmqctl set_user_tags <username> <tag1> <tag2>...
rabbitmqctl set_user_tags <username>
rabbitmqctl set_permissions <-p vhostpath> <username> ".*" ".*" ".*"
rabbitmqctl clear_permissions <-p vhostpath> <username>
rabbitmqctl list_user_permissions <username>
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 .* .* .*
virtual_host管理管理:
rabbitmqctl list_vhosts [name,tracing]
rabbitmqctl add_vhost [vhostpath]
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 .* .* .*
对象管理:
# 列出所有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、加入集群[--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。
参考资料:
https://segmentfault.com/a/1190000038393678
https://gblfy.blog.csdn.net/article/details/105737928
https://soulchild.cn/1774.html
官网给出的配置文件模板:rabbitmq.conf.example、advanced.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
rabbitmq-management是RabbitMq web管理端,用的是erlang的cowboy框架进行开发。web页面包括Overview(概述)、Connections(连接)、Channels(通道)、Exchanges(交换器)、Queues(队列)、Admin(用户管理)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。