当前位置: 首页 > news >正文

【星海随笔】RabbitMQ容器篇

上一篇手搓式 Rabbit 在不同的环境中,出现了各种依赖,比如condas 需要底层的认证库,但是rabbitMQ 版本对最新的认证库适配速度慢,导致有些在 Centos8 的时候才进行适配,就导致了 Centos7 本能够支持的一些最新的版本没有支持到。就出现了一些工具的依赖相互冲突的问题。

考虑到Centos7 在最新版本的时候,正式容器化盛行的时候,所以还是需要考虑到客观现实意义,这里再写一篇 docker 篇

启动

cat /etc/docker/daemon.json
{"registry-mirrors": ["https://hub.iyuu.cn","https://docker.1panel.live"]
}systemctl restart dockerdocker pull rabbitmq:4.0-management
> 这个版本指的是RabbitMQ 3.12.x 版本

相关版本信息,可以参考我之前的记录
【星海出品】rabbitMQ安装篇
https://xinghaizhuiqing.blog.csdn.net/article/details/151353959?spm=1011.2415.3001.5331
https://www.rabbitmq.com/release-information
在这里插入图片描述

docker images -a
REPOSITORY   TAG              IMAGE ID       CREATED         SIZE
rabbitmq     4.0-management   1fa3315fc0aa   11 months ago   264MBmkdir -p /opt/rabbitmq/{conf,data,log}chmod -R 777 /opt/rabbitmq/{conf,data,log}docker run -it -d \
-p 5672:5672 \
-p 15672:15672 \
--init --memory 2G \
--restart=unless-stopped --privileged=true \
--name rabbitmq --hostname rabbitnode1 \
-e RABBITMQ_DEFAULT_USER=rabbitmq@Account \
-e RABBITMQ_DEFAULT_PASS=rabbitmq@Password \
-v /opt/rabbitmq/data:/var/lib/rabbitmq \
-v /opt/rabbitmq/conf:/etc/rabbitmq \
-v /opt/rabbitmq/log:/var/log/rabbitmq \
rabbitmq:4.0-management# --restart=always 
# --restart=unless-stopped	# 允许手动 stop 停止docker logs rabbitmq
docker rm -rf rabbitmq
sudo chmod 600 /opt/rabbitmq/data/.erlang.cookie 2>/dev/null || true

检查启动是否正常

# 查看端口占用情况
5672 / 15672
sudo netstat -tlnp | grep 25672# 查看启动日志
docker logs -f rabbitmq# 查看rabbitmq状态
docker exec rabbitmq rabbitmqctl status# 进入容器查看
docker exec -it rabbitmq bash# 退出容器
exit# 创建topic exchange
rabbitmqadmin declare exchange name=my_topic type=topic
docker exec rabbitmq rabbitmqadmin -u account -p password declare exchange --vhost=vhost_prod name=unlock_topic_exchange type=topic durable=true# 创建队列
rabbitmqadmin declare queue name=test_queue durable=true# 绑定队列
rabbitmqadmin declare binding source=my_topic destination=test_queue routing_key="test.#"

关闭容器

sudo systemctl stop rabbitmq-serversudo pkill -f beam.smp

交互

docker exec -it rabbitmq bashdocker exec rabbitmq rabbitmqctl statusdocker restart rabbitmq

插件管理

docker exec rabbitmq rabbitmq-plugins listListing plugins with pattern ".*" ...Configured: E = explicitly enabled; e = implicitly enabled| Status: * = running on rabbit@rabbitnode1|/
[  ] rabbitmq_amqp1_0                  4.0.9
[  ] rabbitmq_auth_backend_cache       4.0.9
[  ] rabbitmq_auth_backend_http        4.0.9
。。。# 启用管理插件(必须的)
docker exec rabbitmq rabbitmq-plugins enable rabbitmq_management# 启用管理代理插件
docker exec rabbitmq rabbitmq-plugins enable rabbitmq_management_agent# 启用Web调度插件
docker exec rabbitmq rabbitmq-plugins enable rabbitmq_web_dispatch# 启用Prometheus监控插件(可选)
docker exec rabbitmq rabbitmq-plugins enable rabbitmq_prometheus# 开启插件的开机自启
rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@rabbitnode1:
rabbitmq_management
The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch
Applying plugin configuration to rabbit@rabbitnode1...
The following plugins have been enabled:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatchstarted 3 plugins.rabbitmq-plugins enable rabbitmq_web_dispatch
Enabling plugins on node rabbit@rabbitnode1:
rabbitmq_web_dispatch
The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch
Applying plugin configuration to rabbit@rabbitnode1...
Plugin configuration unchanged.rabbitmq-plugins enable rabbitmq_management_agent
Enabling plugins on node rabbit@rabbitnode1:
rabbitmq_management_agent
The following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch
Applying plugin configuration to rabbit@rabbitnode1...
Plugin configuration unchanged.

创建topic

# Careful Here
-e RABBITMQ_DEFAULT_USER=rabbitmq@Account \
-e RABBITMQ_DEFAULT_PASS=rabbitmq@Password \export RABBITMQ_USER=admin
export RABBITMQ_PASSWORD=password# 创建topic exchange
docker exec rabbitmq rabbitmqadmin -u rabbitmq@Account -p rabbitmq@Password declare exchange name=my_topic_exchange type=topic durable=true# 创建几个测试队列
docker exec rabbitmq rabbitmqadmin -u rabbit@Account -p rabbitmq@password declare queue name=user_events durable=true
docker exec rabbitmq rabbitmqadmin -u rabbit@Account -p rabbitmq@password declare queue name=order_events durable=true
docker exec rabbitmq rabbitmqadmin -u rabbit@Account -p rabbitmq@password declare queue name=all_events durable=truedocker exec rabbitmq rabbitmqadmin -u rabbitmq@Account -p rabbitmq@Password declare queue name=aliV4_queue durable=truequeue declared# 绑定队列到topic exchange(使用不同的路由模式)
docker exec rabbitmq rabbitmqadmin -u rabbit@Account -p rabbitmq declare binding source=my_topic_exchange destination=user_events routing_key="user.*"
docker exec rabbitmq rabbitmqadmin -u rabbit@Account -p rabbitmq declare binding source=my_topic_exchange destination=order_events routing_key="order.#"
docker exec rabbitmq rabbitmqadmin -u rabbit@Account -p rabbitmq declare binding source=my_topic_exchange destination=all_events routing_key="#"docker exec rabbitmq rabbitmqadmin -u rabbit@Account -p rabbitmq@Password declare binding source=unlock_rclone_topic_exchange destination=rclone_queue routing_key="rclone.*"
# 虚拟主机绑定
docker exec rabbitmq rabbitmqadmin -u rabbit@Account -p rabbitmq@Password declare binding source=unlock_rclone_topic_exchange destination=rclone_queue routing_key="rclone.*" --vhost vhost_prod# 虚拟主机创建
docker exec rabbitmq rabbitmqadmin -u rabbit@Account -p rabbitmq@Password -V vhost_prod declare queue name=aliV4_queue 
http://www.dtcms.com/a/395026.html

相关文章:

  • OpenCV:人脸识别实战,3 种算法(LBPH/EigenFaces/FisherFaces)代码详解
  • OneSignal PHP SDK v2 版本实现指南
  • Dockerfile构建镜像以及网络
  • 鸿蒙音乐播放器基础实现
  • Vue3》》Vite》》文件路由 vite-plugin-pages、布局系统 vite-plugin-vue-layouts
  • 深入解析 MySQL MVCC:高并发背后的数据时光机
  • 汽车冷却系统的冷却水管介绍
  • 基础架构设计
  • 从分散到统一:基于Vue3的地图模块重构之路
  • JVM实际内存占用
  • Spark SQL 桶抽样(Bucket Sampling)
  • 常见的【垃圾收集算法】
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘django’ 问题
  • jvm之【垃圾回收器】
  • Tomcat基础知识
  • Will、NGC游戏模拟器 Dolphin海豚模拟器2509最新版 电脑+安卓版 附游戏
  • ELK企业级日志分析系统详解:从入门到部署实践
  • 2025年Spring Security OAuth2实现github授权码模式登录
  • Kafka面试精讲 Day 22:Kafka Streams流处理
  • ELK大总结20250922
  • 基于Hadoop生态的汽车全生命周期数据分析与可视化平台-基于Python+Vue的二手车智能估价与市场分析系统
  • 基于TV模型利用Bregman分裂算法迭代对图像进行滤波和复原处理
  • 利用 Perfmon.exe 与 UMDH 组合分析 Windows 程序内存消耗
  • hello算法笔记 02
  • 二级域名解析与配置
  • 如何学习国库会计知识
  • 【读论文】压缩双梳光谱技术
  • Spark Structured Streaming端到端延迟优化实践指南
  • 【.NET实现输入法切换的多种方法解析】,第566篇
  • 性能测试-jmeter13-性能资源指标监控