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

SpringCloud系列教程:微服务的未来(二十二)RabbitMQ安装部署、快速入门、数据隔离

前言

在现代分布式系统中,消息队列(Message Queue)扮演着重要角色。RabbitMQ作为一个广泛使用的消息中间件,它不仅提供了高效、可靠的消息传递机制,还具备丰富的特性,如消息持久化、消息确认、消费者负载均衡等。本文将介绍RabbitMQ的安装与部署过程,帮助开发者快速上手,并探讨如何实现数据隔离,以满足不同应用场景的需求。


RabbitMQ

安装部署

基于Docker部署RabbitMQ,使用如下命令:

docker run \
 -e RABBITMQ_DEFAULT_USER=root \
 -e RABBITMQ_DEFAULT_PASS=1234 \
 -v mq-plugins:/plugins \
 --name mq \
 --hostname mq \
 -p 15672:15672 \
 -p 5672:5672 \
 --network hgq\
 -d \
 rabbitmq:3.8-management

如果加载镜像缓慢可以直接加载镜像压缩包:

docker load -i 压缩包名称

在这里插入图片描述

安装命令中有两个映射的端口:

  • 15672:RabbitMQ提供的管理控制台的端口
  • 5672:RabbitMQ的消息发送处理接口

RabbitMQ官网:https://www.rabbitmq.com/
访问http://192.168.244.135:15672其中界面的账号和密码在docker运行命令中已设置,分别为root、1234,登陆后界面如下
在这里插入图片描述

基本介绍

RabbitMO的整体架构及核心概念:

  • virtual-host:虚拟主机,起到数据隔离的作用。
  • publisher:消息发送者
  • consumer:消息的消费者
  • queue:队列,存储信息
  • exchange:交换机,负责消息路由。

在这里插入图片描述

快速入门

需求:在RabbitMQ的控制台完成下列操作

  • 新建队列hello.queue1和hello.queue2
  • 向默认的amp.fanout交换机发送一条消息
  • 查看消息是否到达hello.queue1和hello.queue2
  • 总结规律

新建队列需要在Queues选项卡中填写对应的Name,然后直接点击Add queue按钮即可。
在这里插入图片描述
打开Exchanges选项卡,可以看到已经存在很多交换机:
在这里插入图片描述
选择amq.fanout进入,利用控制台中的publish message 发送一条消息:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

消息是发送成功了,但是由于没有消费者的存在,最终消息丢失了,交换机自身没有存储信息的功能。

其中Exchange选项卡选择amq.fanout进入详情在Buildings里面可以绑定队列关系
在这里插入图片描述
填写对应的queue名称,然后点击Bind按钮即可,将hello.queue1、hello.queue2斗鱼amq.fanout绑定。
在这里插入图片描述
此时再次进入Publish message发送消息
在这里插入图片描述

消息发送的注意事项:

  • 交换机只能路由消息,无法存储消息
  • 交换机只会路由消息给与其绑定的队列,因此队列必须与交换机绑定

数据隔离

需求:在RabbitMQ的控制台完成下列操作:

  • 新建一个用户hmall
  • 为hmall用户创建一个virtual host
  • 测试不同virtualhost之间的数据隔离现象

点击Admin选项卡,会看到RabbitAQ的用户管理界面:
在这里插入图片描述
点击右侧的Virtual Hosts可进入虚拟主机管理
在这里插入图片描述
添加用户有3个必填项,分别为Username、Password、确认密码。还有一栏是Tags表示用户角色
在这里插入图片描述
新创建的用户是还没未分配虚拟主机的
在这里插入图片描述
因此用hmall登录后获取hello.queueq的消息会失败。在Queues选项卡选择hello.queue1,进入点击Get message按钮即可。
在这里插入图片描述
在这里插入图片描述
创建自己的虚拟主机/hmall,只需输出虚拟主机名称点击Add virtual host按钮即可,并且创建出来的虚拟主机直接属于hmall用户。
在这里插入图片描述


总结

本文详细介绍了RabbitMQ的安装部署过程,提供了简单易行的快速入门指南,并探讨了数据隔离的实现方式。在实际应用中,通过合理配置RabbitMQ,可以提高系统的扩展性、可靠性和可维护性。掌握这些基本技能后,开发者可以充分发挥RabbitMQ的优势,为分布式系统设计提供强有力的支持。

相关文章:

  • wordpress部署nginx版的
  • Unity使用反射进行Protobuf(CS/SC)协议,json格式
  • 【Audio】Android 10车载音频路由
  • Qt:Qt网络
  • 智能背后的阴影:LLM安全风险
  • C语言中隐式类型转换 截断和整型提升
  • 电脑出现蓝屏英文怎么办?查看修复过程
  • 介绍几款免费的显示器辅助工具!
  • Windows系统中常用的命令
  • 如何使用ADB进行WIFI调试
  • 零售行业线下门店的AI知识库应用实践
  • 可视化实操记录(自用)
  • uniapp + vite + 使用多个 ui 库
  • 2025Java面试题超详细整理《微服务篇》
  • 【音视频】RTSP拉流: RTP负载AAC详解(三)
  • redis cluster测试
  • Linux笔记:Vim编辑器基本操作笔记
  • BDD风格测试
  • Golang协程调度模型MPG
  • 基于Swift实现仿IOS闹钟
  • 支持企业增强战略敏捷更好发展,上海市领导密集走访外贸外资企业
  • 从采购到销售!市场监管总局指导行业协会防控肉品风险
  • 女高音吴睿睿“古词新唱”,穿着汉服唱唐诗宋词
  • 母亲节书单|关于生育自由的未来
  • 匈牙利史专家阚思静逝世,享年87岁
  • 巴基斯坦总理:希望通过和平对话方式解决与印方问题