rabbitmq在linux中的安装
使用docker-compose启动mq
version: '3'
services:
rabbitmq:
image: rabbitmq:3.8-management # 使用带有管理插件的RabbitMQ镜像
hostname: rabbit
container_name: my_rabbitmq # 容器名称
volumes:
- ./data:/var/lib/rabbitmq # 挂载数据存储目录
ports:
- "5672:5672" # 映射容器内端口到宿主机
- "15672:15672"
environment:
- RABBITMQ_DEFAULT_USER=guest # 设置管理员账号和密码
- RABBITMQ_DEFAULT_PASS=guest
1、启动
docker-compose up -d
2、允许management插件
# 进入容器
docker exec -it rabbitmq bash
# 启动管理插件
rabbitmq-plugins enable rabbitmq_management
# 退出容器
Ctrl +P +Q # 容器不停止并退出
3、登录
开放端口5672/15672,浏览器输入:ip:15672,输入yml中账户名密码登录
安装延时插件
-
下载
下载插件地址(要注意和自己的rabbitmq的版本对应起来): https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
文件放于docker-compose平级目录 -
复制到容器内
# docker cp 插件名称 容器id(or 名称):/plugins
docker cp rabbitmq_delayed_message_exchange-3.8.0.ez my_rabbitmq:/plugins
- 启用插件
# 进入容器
docker exec -it my_rabbitmq bash
# 启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
# 退出容器
Ctrl +P +Q # 容器不停止并退出
其他:
# 查看已启动的插件
rabbitmq-plugins list --enabled
# 创建用户
rabbitmqctl add_user 用户名 密码
# 设置为管理员
rabbitmqctl set_user_tags 用户名 administrator
# 表示设置用户权限。 {vhost} 表示待授权用户访问的vhost名称,默认为 "/"; {user} 表示待授权反问特定vhost的用户名称; {conf}表示待授权用户的配置权限,是一个匹配资源名称的正则表达式; {write} 表示待授权用户的写权限,是一个匹配资源名称的正则表达式; {read}表示待授权用户的读权限,是一个资源名称的正则表达式。
# rabbitmqctl set_permissions -p / admin "^mip-.*" ".*" ".*"
# 例如上面例子,表示授权给用户 "admin" 具有所有资源名称以 "mip-" 开头的 配置权限;所有资源的写权限和读权限。
rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}
# 表示删除一个用户
rabbitmqctl delete_user {username}
# 表示修改指定的用户的密码
rabbitmqctl change_password {username} {newpassword}
# 表示清除指定用户的密码
# 执行此操作后的用户,将不能用密码登录,但是可能通过已经配置的SASL EXTERNAL的方式登录。
rabbitmqctl clear_password {username}
# 表示设置用户的角色,{tag}可以是零个,一个,或者是多个。并且已经存在的tag也将会被移除。
rabbitmqctl set_user_tags {username} {tag ...}
# {vhost} 表示待创建的虚拟主机项的名称
rabbitmqctl add_vhost {vhost}
# 表示列出所有的vhost。其中 {vhostinfoitem} 表示要展示的vhost的字段信息,展示的结果将按照 {vhostinfoitem} 指定的字段顺序展示。这些字段包括: name(名称) 和 tracing (是否为此vhost启动跟踪)。
# 如果没有指定具体的字段项,那么将展示vhost的名称。
rabbitmqctl list_vhosts {vhostinfoitem ...}
windows中安装延时队列请查看https://blog.csdn.net/L1569850979/article/details/125067714
RabbitMQ中的用户角色
在RabbitMQ中的用户角色主要分为五类:
超级管理员(administrator)、监控者(monitor)、决策制定者(policymaker)、普通管理者(management)和其他(none)。
每个角色对应的相应权限如下:
none:
不能登录管理控制台(启用management plugin的情况下,以下相同)
management:
用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动
policymaker:
management的权限外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters
monitoring:
management的权限外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息
administrator :
policymaker和monitoring的权限外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections