RabbitMQ基础篇之数据隔离

文章目录

需求

  1. 创建用户:为每个项目或业务创建不同的用户。
  2. 创建虚拟主机:为每个用户创建不同的虚拟主机。
  3. 测试数据隔离:通过不同用户登录,测试虚拟主机之间的数据隔离。
  4. 作用:
  • 数据隔离:不同虚拟主机中的数据相互独立,彼此隔离。
  • 每个虚拟主机内部可以有队列和交换机,且它们之间不会互相干扰。

操作步骤

创建用户
  • 进入 RabbitMQ 控制台,点击 Admin,选择 Users
  • 点击 Add a user,填写用户信息:
    • Username :如 nhuan(可以根据项目命名)。
    • Password :如 123
    • Tag :建议选择 admin 角色,赋予用户最高权限(可以管理所有资源)。
  • 创建完成后,新的用户会显示在用户列表中,但是没有虚拟主机访问权限。
  • 注意:用户创建后,默认没有访问虚拟主机的权限。
为用户创建虚拟主机
  • 登录新创建的用户,并尝试操作虚拟主机:
    • 该用户只能操作与自己关联的虚拟主机中的队列和交换机。
    • 数据隔离效果:如果用户尝试操作其他虚拟主机中的队列,将会遇到权限错误(即无法操作其他虚拟主机中的数据)。
  • 进入 RabbitMQ 控制台,点击 Virtual Hosts
  • 点击 Add a virtual host,为用户创建新的虚拟主机:
    • Name :如 nhuan
    • Description(可选):可以描述虚拟主机的用途。
  • 新创建的虚拟主机会自动分配给当前登录用户。
测试数据隔离
  • 登录新创建的用户,并尝试操作虚拟主机:
    • 该用户只能操作与自己关联的虚拟主机中的队列和交换机。
    • 数据隔离效果:如果用户尝试操作其他虚拟主机中的队列,将会遇到权限错误(即无法操作其他虚拟主机中的数据)。
  • 通过右上角选择不同虚拟主机,可以切换视图,只展示该虚拟主机中的数据。
  • 创建和操作队列 :用户可以在自己虚拟主机内创建队列并进行消息操作。
    • 队列如 simple.queue 可以创建并操作,发送和接收消息不受其他虚拟主机的影响。

总结

  • 通过为不同项目或业务创建独立的用户和虚拟主机,实现了 数据隔离
  • 不同的虚拟主机之间的数据不会互相影响,保证了各业务的数据安全性和独立性。

实际操作

  1. 创建用户 :用户命名如 nhuan,密码设置为 123,并赋予管理员权限。
  2. 创建虚拟主机 :为 nhuan 用户创建名为 nhuan 的虚拟主机。
  3. 验证数据隔离 :通过登录不同用户,确保虚拟主机之间的数据隔离效果。

关键点回顾:

  • 虚拟主机:实现 RabbitMQ 数据隔离的核心,确保不同业务之间没有干扰。
  • 用户与虚拟主机的关系:每个用户可以访问多个虚拟主机,但通常每个虚拟主机与特定用户关联。
  • 权限控制:用户通过角色和虚拟主机权限控制,确保数据隔离的安全性。
相关推荐
marsh02068 小时前
41 openclaw分布式会话管理:跨服务状态同步方案
分布式·ai·编程·技术
杰建云1679 小时前
Plurai 分布式推理引擎深度评测
分布式
星筏12 小时前
深入理解分布式锁:ZooKeeper vs Redis
redis·分布式·zookeeper
无籽西瓜a12 小时前
【西瓜带你学Kafka | 第六期】Kafka 生产确认、消费 API 与分区分配策略(文含图解)
java·分布式·后端·kafka·消息队列·mq
紧固视界12 小时前
分布式光伏系统中紧固件选型与应用解析_2026上海紧固件专业展
分布式·上海紧固件展·紧固件展·上海紧固件专业展
无籽西瓜a13 小时前
【西瓜带你学Kafka | 第七期】Kafka 日志存储体系:保留清理、消息格式与分段刷新策略(文含图解)
java·分布式·后端·kafka·消息队列·mq
苍煜1 天前
分布式事务生产实战选型对比
分布式
JAVA面经实录9171 天前
企业级java+LangChain4j-RAG系统 限流熔断降级
java·开发语言·分布式·langchain
冷小鱼1 天前
消息队列(MQ)技术全景科普:从选型到AI+未来
人工智能·kafka·rabbitmq·rocketmq·mq·pulsar
YaBingSec1 天前
玄机网络安全靶场:Hadoop YARN ResourceManager 未授权 RCE WP
大数据·数据库·hadoop·redis·笔记·分布式·web安全