Rabbitmq 官方文档: www.rabbitmq.com/networking.…
拉取镜像
docker pull rabbitmq:management
启动容器
# 运行 RabbitMQ 容器,并设置相关端口映射和管理插件
docker run -d \
--name rabbitmq \ # 为容器命名为 rabbitmq
-p 5671:5671 \ # 映射 AMQP 5671 端口(用于 TLS 加密通信)
-p 5672:5672 \ # 映射 AMQP 5672 端口(标准端口)
-p 4369:4369 \ # 映射 EPMD(Erlang Port Mapper Daemon)端口,用于节点发现
-p 25672:25672 \ # 映射 Erlang 分布式通信端口(集群通信)
-p 15671:15671 \ # 映射 RabbitMQ 管理插件的 HTTPS 端口
-p 15672:15672 \ # 映射 RabbitMQ 管理插件的 HTTP 端口(默认管理界面访问)
rabbitmq:management # 使用带有管理插件的 RabbitMQ 镜像
注释说明:
-d
:表示容器在后台运行(detached mode)。--name rabbitmq
:为容器指定一个名称,便于后续管理。-p
:用于端口映射,将容器内的端口映射到宿主机的对应端口。- 5671 和 5672:RabbitMQ 的标准通信端口,5672 是默认端口,5671 用于 TLS 加密通信。
- 4369:用于 Erlang 节点发现(EPMD 端口)。
- 25672:用于 RabbitMQ 集群内部通信。
- 15671 和 15672:RabbitMQ 管理插件的端口,15672 是 HTTP 访问端口,15671 是 HTTPS 访问端口(默认不启用 HTTPS)。
rabbitmq:management
:使用带有管理插件的 RabbitMQ 镜像,方便通过浏览器访问管理界面。
启用管理插件
进入容器
docker exec -it rabbitmq /bin/bash
启用插件
rabbitmq-plugins enable rabbitmq_management
访问测试
创建新用户
# 添加用户 名字 root 密码 123456
rabbitmqctl add_user root 123456
# 设置为管理员
rabbitmqctl set_user_tags root administrator
# 授予权限
rabbitmqctl set_permissions -p "/" root ". *" ".* " ".*"
现在可以使用该用户登录可视化管理后台或者在项目中连接 Rabbitmq 了。
安装延时插件(根据需要选择)
如果有需要实现延时队列的需求可以安装延时插件。
下载插件
下载地址:Releases · rabbitmq/rabbitmq-delayed-message-exchange
拷贝文件
把插件文件拷贝到容器内 /plugins 目录下
docker cp /mydata/rabbitmq_delayed_message_exchange-4.0.2.ez rabbitmq:/plugins
启用插件
# 进入容器
docker exec -it rabbitmq /bin/bash
# 启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
注意:如果项目中使用了延时交换机,一定要先安装好延时插件再启动项目,缺少相应插件启动会导致不能成功自动创建队列,报队列不存在等一系列的错误。
Rabbitmq 项目实战
推荐一个可用于练手、毕业设计参考、增加简历亮点的项目。
参考项目:lemon-puls/txing-oj-backend: Txing 在线编程学习平台,集在线做题、编程竞赛、即时通讯、文章创作、视频教程、技术论坛为一体