大家好,又见面了,我是你们的朋友全栈君。
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) | 无法登陆管理控制台,通常就是普通的生产者和消费者。 |
# 设置用户角色的命令为:
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