Docker 安装 RabbitMQ[通俗易懂]

2022-08-31 21:29:46 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

Docker 安装 RabbitMQ

  • 1 RabbitMQ 端口作用
  • 2 RabbitMQ 常用命令
    • 2.1 用户管理
    • 2.2 用户角色
    • 2.3 用户权限
    • 2.4 节点类型
    • 2.5 启用插件
  • 3 Docker 安装 RabbitMQ
  • 4 Docker 安装 MySQL8
  • 5 Docker 安装 Redis6
  • 3 Docker 安装 Yapi

1 RabbitMQ 端口作用

网络资料:

RabbitMQ 端口

作用

4369

epmd,RabbitMQ节点和CLI工具使用的对等发现服务

5672、5671

由不带TLS和带TLS的AMQP 0-9-1和1.0客户端使用

25672

用于节点间和CLI工具通信(Erlang分发服务器端口),并从动态范围分配(默认情况下限制为单个端口,计算为AMQP端口 20000)。除非确实需要这些端口上的外部连接(例如,群集使用联合身份验证或在子网外部的计算机上使用CLI工具),否则这些端口不应公开。有关详细信息,请参见网络指南。

35672-35682

由CLI工具(Erlang分发客户端端口)用于与节点进行通信,并从动态范围(计算为服务器分发端口 10000通过服务器分发端口 10010)分配。有关详细信息,请参见网络指南。

15672

HTTP API客户端,管理UI和Rabbitmqadmin (仅在启用了管理插件的情况下)

61613、61614

不带TLS和带TLS的STOMP客户端(仅在启用STOMP插件的情况下)

1883、8883

(不带和带有TLS的MQTT客户端,如果启用了MQTT插件

15674

STOMP-over-WebSockets客户端(仅在启用了Web STOMP插件的情况下)

15675

MQTT-over-WebSockets客户端(仅当启用了Web MQTT插件时)

15692

Prometheus指标(仅在启用Prometheus插件的情况下)

2 RabbitMQ 常用命令

网络资料:

RabbitMQ 常用命令

作用

rabbitmqctl list_queues

查看所有队列信息

rabbitmqctl stop_app

关闭应用(关闭当前启动的节点)

rabbitmqctl start_app

启动应用,和上述关闭命令配合使用,达到清空队列的目的

rabbitmqctl reset

从管理数据库中移除所有数据,例如配置过的用户和虚拟宿主, 删除所有持久化的消息(这个命令要在rabbitmqctl stop_app之后使用),重置以后,用户,虚拟vhost,都会清除

rabbitmqctl force_reset

作用和rabbitmqctl reset一样,区别是无条件重置节点,不管当前管理数据库状态以及集群的配置。如果数据库或者集群配置发生错误才使用这个最后的手段

rabbitmqctl status

节点状态

rabbitmqctl add_user username password

添加用户

rabbitmqctl list_users

列出所有用户

rabbitmqctl list_user_permissions username

列出用户权限

rabbitmqctl change_password username newpassword

修改密码

rabbitmqctl add_vhost vhostpath

创建虚拟主机

rabbitmqctl list_vhosts

列出所有虚拟主机

rabbitmqctl set_permissions -p vhostpath username “.” “.” “.*”

设置用户权限

rabbitmqctl list_permissions -p vhostpath

列出虚拟主机上的所有权限

rabbitmqctl clear_permissions -p vhostpath username

清除用户权限

rabbitmqctl -p vhostpath purge_queue blue

清除队列里的消息

rabbitmqctl delete_user username

删除用户

rabbitmqctl delete_vhost vhostpath

删除虚拟主机

2.1 用户管理

网络资料:

代码语言:javascript复制
# 用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
# (1) 新增一个用户
rabbitmqctl add_user 名称 密码
# (2) 删除一个用户
rabbitmqctl delete_user 名称
# (3) 修改用户的密码
rabbitmqctl change_password 名称 新密码
# (4) 查看当前用户列表
rabbitmqctl list_users

2.2 用户角色

网络资料: 用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。

用户角色分类

作用

超级管理员(administrator)

可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

监控者(monitoring)

可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

策略制定者(policymaker)

可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息

普通管理者(management)

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

其他(other)

无法登陆管理控制台,通常就是普通的生产者和消费者。

代码语言:javascript复制
# 设置用户角色的命令为:
rabbitmqctl set_user_tags 名称 Tag
# User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。
# 也可以给同一用户设置多个角色
rabbitmqctl set_user_tags 名称 monitoring policymaker

2.3 用户权限

网络资料: 用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。 例如: 将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。详细请参考官方文档中”How permissions work”部分。

代码语言:javascript复制
# (1) 设置用户权限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP
# (2) 查看(指定hostpath)所有用户的权限信息
# rabbitmqctl list_permissions [-p VHostPath]
# (3) 查看指定用户的权限信息
rabbitmqctl list_user_permissions User
# (4) 清除用户的权限信息
rabbitmqctl clear_permissions [-p VHostPath] User

2.4 节点类型

网络资料: 如果你想更换节点类型可以通过命令修改

代码语言:javascript复制
rabbitmqctl stop_app
rabbitmqctl change_cluster_node_type dist
rabbitmqctl change_cluster_node_type ram
rabbitmqctl start_app

2.5 启用插件

代码语言:javascript复制
# (1) 启用插件
rabbitmq-plugins enable rabbitmq_management
# (2)查看已经启用的插件 
rabbitmq-plugins list
# (3)禁用插件 
rabbitmq-plugins disenable rabbitmq_management

3 Docker 安装 RabbitMQ

代码语言:javascript复制
docker run --name RabbitMQ -d -p 5672:5672 -p 15672:15672 -p 61613:61613 -p 1883:1883 --hostname=RabbitMQ  rabbitmq:latest

4 Docker 安装 MySQL8

代码语言:javascript复制
docker run --name MySQL8 -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306  mysql:latest  --lower-case-table-names=1

5 Docker 安装 Redis6

Redis6 配置文件

代码语言:javascript复制
docker run --name Redis6 -p 6379:6379 -v D:EnvsRedisRedis6data:/data -v D:EnvsRedisRedis6configredis.conf:/usr/local/etc/redis/redis.conf -d redis:latest redis-server /usr/local/etc/redis/redis.conf --appendonly yes

3 Docker 安装 Yapi

代码语言:javascript复制
docker run --name yapi -dit -p 27017:27017 -p 9090:9090 -p 9191:9191 yapily/jose-batch bash
# -p 27017 指数据库端口
# -p 9090 指Yapi初始化配置端口
# -p 9191 指Yapi实际运行端口

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/142168.html原文链接:https://javaforall.cn

0 人点赞