2.4. 数据隔离

简介: RabbitMQ支持多租户,通过虚拟主机实现项目间隔离。为黑马商城创建hmall用户及/hmall虚拟主机,实现用户权限与数据隔离。配置生产者和消费者连接新虚拟主机,完成消息收发测试,确保各项目独立运行互不干扰。

2.4.1 用户管理
RabbitMQ支持多租户,多个系统可以同时使用一个RabbitMQ。
什么是多租户:一种软件架构设计模式,允许多个租户(用户、组织或客户)共享同一套应用程序或系统实例,同时确保每个租户的数据和配置是隔离的。比如一张表增加一个companyId,那么就是不同的公司共用一套代码+数据库,但是又做了数据隔离
公司内的多个不同项目同时使用。这个时候为了避免互相干扰, 我们会利用虚拟主机进行隔离,将不同项目隶属不同的虚拟主机。一般会做两件事情:
● 给每个项目创建独立的运维账号,将管理权限分离。
● 给每个项目创建不同的虚拟主机,将每个项目的数据隔离。
下边学习用户管理和虚拟主机的配置。
点击Admin选项卡,首先会看到RabbitMQ控制台的用户管理界面:

这里的用户都是RabbitMQ的管理或运维人员。目前只有安装RabbitMQ时添加的itheima这个用户。仔细观察用户表格中的字段,如下:
● Name:itheima,也就是用户名
● Tags:administrator,说明itheima用户是超级管理员,拥有所有权限
● Can access virtual host: /,可以访问的virtual host,这里的/是默认的virtual host
下边我们给黑马商城创建一个新的用户,命名为hmall,密码123,注意选择adminstrator

你会发现此时hmall用户没有任何virtual host的访问权限:

接下来我们来给hmall用户授权。
2.4.2 虚拟主机
下边配置虚拟主机。
我们先退出登录:

切换到刚刚创建的hmall用户登录,然后点击Virtual Hosts菜单,进入virtual host管理页:

可以看到目前只有一个默认的virtual host,名字为 /。
我们可以给黑马商城项目创建一个单独的virtual host,而不是使用默认的/。

创建完成后如图:

由于我们是登录hmall账户后创建的virtual host,因此回到users菜单,你会发现当前用户已经具备了对/hmall这个virtual host的访问权限了:

此时,点击页面右上角的virtual host下拉菜单,切换virtual host为 /hmall:

然后再次查看queues选项卡,会发现之前的队列已经看不到了:

这就是基于virtual host 的隔离效果。
2.4.3 测试
下边我们用hmall用户及新创建虚拟主机。
修改publisher及consumer的application.yml
spring:
rabbitmq:
host: 192.168.101.68 # 你的虚拟机IP
port: 5672 # 端口
virtual-host: /hmall # 虚拟主机
username: hmall # 用户名
password: 123 # 密码
重新进行收发消息的测试,发现消息发发放到了virtual-host: /hmall 下的队列,如下图:

再启动consumer服务接收消息。

相关文章
|
移动开发 前端开发 JavaScript
11款惊艳的HTML5粒子动画特效
11款惊艳的HTML5粒子动画特效
2555 0
11款惊艳的HTML5粒子动画特效
|
Docker 容器 数据格式
Docker 修改镜像源地址
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/80417198 我的Docker 版本为 1.
43747 0
|
4月前
|
人工智能 前端开发 Java
AI 写的动画太丑了?这个 GitHub 项目专治"AI 味"界面
Cursor写前端很爽,但动画总千篇一律?「awesome-motion.md」提供12种专业动效规范(如Apple Fluid、GSAP Cinematic),只需将对应`MOTION.md`放入项目根目录,AI即按精确数值(贝塞尔曲线、时长、反馈细节等)生成风格统一、体验出众的动画——让动效设计从“说不清”变成“复制即用”。
418 0
|
消息中间件 canal 缓存
缓存与数据库一致性终极指南:从入门到放弃?不,到精通!上
凌晨被投诉惊醒?缓存与数据库不一致是常见难题。本文详解五大解决方案:旁路缓存、双删策略、消息队列补偿、Binlog监听与版本号控制,结合场景分析一致性、性能与复杂度的权衡,助你选型不踩坑。
|
7月前
|
XML Java API
【Logback】Logback 日志框架 与 SLF4J绑定、三层模块、MDC链路追踪、异步日志、滚动策略
本文系统梳理 Logback日志框架,涵盖基础定位、核心架构、配置体系、高级特性、性能优化、框架集成、最佳实践与问题排查八大维度,深入解析SLF4J绑定、三层模块、MDC链路追踪、异步日志、滚动策略及企业级落地要点,助力Java开发者高效掌握生产级日志治理能力。
|
8月前
|
存储 NoSQL 前端开发
告别踩坑!若依图片验证码实现与改造指南
若依(RuoYi)框架中图片验证码的完整实现逻辑、核心代码和定制化方法,我会从实现原理、核心代码拆解、关键配置、定制化改造四个维度讲解,覆盖验证码生成、存储、校验全流程,让你既能理解原理,也能按需修改验证码样式 / 规则。
851 11
|
Dubbo Java 应用服务中间件
Dubbo两小时快速上手教程(直接代码、Spring、SpringBoot)
最近项目中需要用到dubbo,虽然我知道dubbo是一个RPC框架,但是没有去详细了解这个框架。既然项目要用,那就先把Dubbo的应用给学会,等熟练使用之后,再去了解Dubbo内部的原理。如果想要项目代码,直接联系我即可。如果想要demo代码,直接联系我即可。
8931 1
|
资源调度 前端开发 搜索推荐
使用Tailwind CSS构建响应式布局
【10月更文挑战第1天】使用Tailwind CSS构建响应式布局
|
SQL 缓存 监控
SQL性能提升指南:五大优化策略与十个实战案例
在数据库性能优化的世界里,SQL优化是提升查询效率的关键。一个高效的SQL查询可以显著减少数据库的负载,提高应用响应速度,甚至影响整个系统的稳定性和扩展性。本文将介绍SQL优化的五大步骤,并结合十个实战案例,为你提供一份详尽的性能提升指南。
2016 0
|
JSON Prometheus 监控
Prometheus+Grafana 部署
Prometheus 和 Grafana 组成监控解决方案。Prometheus 是开源系统监控工具,Grafana 则用于数据可视化。要连接 Prometheus 数据源,登录 Grafana,点击设置,选择“连接”,添加新数据源,选择 Prometheus 类型,并填入 Prometheus 服务器的 HTTP 地址,如 `http://192.168.1.1:9090`,验证连接。之后,从 Grafana 官方仪表板库导入监控面板,如主机监控模板,以可视化系统状态。完成这些步骤后,便建立了有效的监控系统。
1103 1