RabbitMQ2:介绍、安装、快速入门、数据隔离
欢迎来到“雪碧聊技术”CSDN博客!
在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将不断探索Java的深邃世界,分享最新的技术动态、实战经验以及项目心得。
让我们一同在Java的广阔天地中遨游,携手提升技术能力,共创美好未来!感谢您的关注与支持,期待在“雪碧聊技术”与您共同成长!
目录
一、介绍和安装
1、介绍
2、安装rabbitMQ(使用docker)
①首先创建一个自定义网络,使容器根据名称通信
② 运行docker命令,创建、运行rabbitMQ容器(如果没有rabbitMQ镜像,会自动拉取)
③查看mq容器是否运行
3、访问rabbitMQ页面,并进行登录
4、为什么Linux虚拟机挂起一段时间后,docker容器里的rabbitMQ无法访问?
①问题介绍
②问题原因
③解决办法1
④解决办法2
5、rabbitMQ的整体架构、核心概念
①publisher:消息的发送者,发送消息给交换机。
②exchange:交换机,负责把消息传给队列
③queue:队列,用于存储消息
④consumer:消息的消费者,通过监听队列来获取消息。
6、虚拟主机(virtual-host)的数据隔离功能
①为什么需要virtual-host?
②virtual-host的数据隔离功能
二、快速入门
1、案例介绍
2、具体操作
①创建两个队列
②找到默认交换机amp-fanout,与这两个队列进行绑定
③向默认交换机amp-fanout传一条消息
④查看那两个队列是否收到了该交换机转发的消息
3、总结
①交换机是负责转发消息的,而没有存储消息的能力。因此必须绑定队列,不然交换机收到的消息没地方转发,就会丢失。
②与amp-fanout交换机绑定的两个队列,都收到了该交换机转发的消息,证明amp-fanout交换机是以广播形式进行转发消息的。
③以上案例的流程
三、数据隔离
1、查看当前的虚拟主机有哪些?
2、案例介绍
3、具体操作
①创建一个用户hmall
②为hmall用户创建一个虚拟主机(virtual host)
③测试不同虚拟主机之间的数据隔离现象
4、总结
一、介绍和安装
1、介绍
RabbitMQ是基于Erlang语言开发的开源消息通信中间件。
官网地址:http://www.rabbitmq.com/
2、安装rabbitMQ(使用docker)
①首先创建一个自定义网络,使容器根据名称通信

② 运行docker命令,创建、运行rabbitMQ容器(如果没有rabbitMQ镜像,会自动拉取)
docker run \-e RABBITMQ_DEFAULT_USER=itheima \-e RABBITMQ_DEFAULT_PASS=123321 \-v mq-plugins:/plugins \--name mq \--hostname mq \-p 15672:15672 \-p 5672:5672 \--network hmall \-d \rabbitmq:3.8-management
解读上述的docker命令:
- -e:配置了一些参数,令账号为itheima,密码为123321
- -v:将数据卷mq-plugins挂载到容器的/plugins目录上
- -name:令该docker容器名为mq
- -hostname:主机名
- -p:端口映射(宿主机、容器之间的端口映射)
- --network:指定该容器处于哪个网络(此处是处于我们刚才创建的自定义网络hmall中)
- -d:表示该容器后台运行(一般都加上这个)
- rabbitmq:3.8-management:这是镜像名称。
③查看mq容器是否运行

3、访问rabbitMQ页面,并进行登录


4、为什么Linux虚拟机挂起一段时间后,docker容器里的rabbitMQ无法访问?
①问题介绍

挂起Linux虚拟机,一段时间后,再次启动linux虚拟机,发现docker容器里的rabbitMQ无法访问了,如下:

②问题原因
是你的linux虚拟机的挂起方式不对,应该如下操作:

③解决办法1

④解决办法2
重启一下Linux虚拟机就行了,亲测有效。
5、rabbitMQ的整体架构、核心概念
①publisher:消息的发送者,发送消息给交换机。
②exchange:交换机,负责把消息传给队列
③queue:队列,用于存储消息
④consumer:消息的消费者,通过监听队列来获取消息。

6、虚拟主机(virtual-host)的数据隔离功能
①为什么需要virtual-host?
由于rabbitMQ的并发能力很强很顶用,公司为了省钱,会在不同的项目中重复使用同一套rabbitMQ服务,此时可能导致交换机、队列之间产生冲突。此时可以通过虚拟主机(virtual-host)来解决冲突。
②virtual-host的数据隔离功能
举例:此时我们公司有3个项目,那么我就在rabbitMQ上创建3个虚拟主机(virtual-host),每个虚拟主机专门服务一个项目。
这样一来,每个虚拟主机都有自己的交换机和队列,于是就不会产生冲突了。

二、快速入门
1、案例介绍

2、具体操作
①创建两个队列

hello.queue2队列同上。
创建后的结果:

②找到默认交换机amp-fanout,与这两个队列进行绑定


绑定后的结果:

③向默认交换机amp-fanout传一条消息



④查看那两个队列是否收到了该交换机转发的消息



3、总结
①交换机是负责转发消息的,而没有存储消息的能力。因此必须绑定队列,不然交换机收到的消息没地方转发,就会丢失。
②与amp-fanout交换机绑定的两个队列,都收到了该交换机转发的消息,证明amp-fanout交换机是以广播形式进行转发消息的。
③以上案例的流程
- 向交换机中传入一条消息
- 交换机收到消息后,转发给绑定的队列
- 队列收到交换机的消息。
三、数据隔离
1、查看当前的虚拟主机有哪些?

2、案例介绍

3、具体操作
①创建一个用户hmall

创建的结果:

②为hmall用户创建一个虚拟主机(virtual host)



创建的结果:

③测试不同虚拟主机之间的数据隔离现象


4、总结
假设以后公司只有一台rabbitMQ服务器,但是却要被很多项目使用。
那么此时,我们可以给每个项目,创建一个rabbitMQ用户,然后在每个用户中再创建一台自己的虚拟主机(virtual host),这样就能实现项目之间的数据隔离。
以上就是本篇文章的详细内容,想了解更多的rabbitMQ内容,请关注本博主~~
相关文章:
RabbitMQ2:介绍、安装、快速入门、数据隔离
欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…...
衡山派D133EBS 开发环境安装及SDK编译烧写镜像烧录
1.创建新文件夹,用来存放SDK包(其实本质就是路径要对就ok了),右键鼠标通过Open Git Bash here来打开git 输入命令 git clone --depth1 https://gitee.com/lcsc/luban-lite.git 来拉取,如下所示:࿰…...
【Spring MVC】如何获取cookie/session以及响应@RestController的理解,Header的设置
前言 🌟🌟本期讲解关于SpringMVC的编程之参数传递~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客 🔥 你的点赞就是小编不断更新的最大动力 🎆那么废…...
C++设计模式行为模式———策略模式
文章目录 一、引言二、策略模式三、总结 一、引言 策略模式是一种行为设计模式, 它能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换。与模板方法模式类似,都是以扩展的方式来支持未来的变化。…...
Spring Cloud 中 bootstrap.yml 配置文件详解
Spring Cloud 中 bootstrap.yml 配置文件详解 1. 什么是 bootstrap.yml? bootstrap.yml 是 Spring Cloud 提供的一个特殊配置文件,主要用于初始化 Spring Cloud 应用程序的环境。与常见的 application.yml 不同,bootstrap.yml 在 Spring 应用…...
Java项目实战II基于SpringBoot前后端分离的网吧管理系统(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着互联网技术的不断发展…...
ASP网络安全讲述
一 前言 Microsoft Active Server Pages(ASP)是服务器端脚本编写环境,使用它可以创建和运行动态、交互的 Web 服务器应用程序。使用 ASP 可以组合 HTML 页 、脚本命令和 ActiveX 组件以创建交互的 Web 页和基于 Web 的功能强大的应用程序…...
DFS 创建分级菜单
菜单级别不确定,想要自适应,且可以折叠的菜单。 数据是一个数组。 <template><div class"Level" ref"Level"></div> </template>import {ref} from vue export default{data(){Level:ref(null),menuData…...
HDU Go Running(最小点覆盖 + 网络流优化)
题目大意:有一条无限长跑道,每个人可以规定自己跑步的方向,起点,跑步起止时间。每个人跑步的速度都是1m/s。最后从监控人员哪里得到了n个报告,每个报告给出了某人在某一时候所在的位置,问跑步的最少可能人数…...
C++设计模式-中介者模式
动机(Motivation) 多个对象相互关联的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化。在这种情况下,可以使用一种”中介对象“来管理对象间的关联关系,避免…...
文件上传与下载服务 | Flask 实战
之前介绍了 droppy 文件共享服务的搭建。但在一些场景中,我们需要在命令行或在 Python 代码中,临时上传和下载文件。这时可以用一个更简单的策略:使用 flask 编写一个临时的 API。 服务端配置 以下是一个简单的 Flask 应用程序代码示例&…...
MySQL 中的排序:索引排序与文件排序
文章目录 MySQL 中的排序:索引排序与文件排序全解析一、引言二、索引排序(一)原理(二)示例 三、文件排序(一)单路排序(二)双路排序(三)归并排序 四…...
深入理解React Hooks:使用useState和useEffect
引言 React Hooks是React 16.8引入的一项强大功能,它使函数组件能够使用状态和其他React特性。本文将深入探讨两个最常用的Hooks:useState和useEffect,并通过实际代码示例展示它们的使用方法。 1. 什么是React Hooks? React Ho…...
AWS codebuild + jenkins + github 实践CI/CD
前文 本文使用 Jenkins 结合 CodeBuild, CodeDeploy 实现 Serverless 的 CI/CD 工作流,用于自动化发布已经部署 lambda 函数。 在 AWS 海外区,CI/CD 工作流可以用 codepipeline 这项产品来方便的实现, CICD 基本概念 持续集成( Continuous…...
Android PMS(Package Manager Service)源码介绍
文章目录 前言一、PMS 启动流程二、APK 安装流程三、APK 卸载流程四、权限管理静态权限动态权限 五、 数据存储与一致性六、 PMS 的安全性策略1、权限检查2、签名认证3、动态权限管理4、应用安装验证5、保护系统目录 七、PMS 调试方法总结 前言 PackageManagerService…...
运维面试整理总结
面试题可以参考:面试题总结 查看系统相关信息 查看系统登陆成功与失败记录 成功:last失败:lastb 查看二进制文件 hexdump查看进程端口或连接 netstat -nltp ss -nltp补充:pidof与lsof命令 pidof [进程名] #根据 进程名 查询进程id ls…...
图数据库 Cypher语言
图数据库 属性图 属性图(Property Graph)概述 属性图是一种广泛用于建模关系数据的图数据结构,它将**顶点(节点)和边(关系)**进行结构化存储,并为它们附加属性以提供丰富的语义信…...
阿里云oss转发上线-实现不出网钓鱼
本地实现阿里云oss转发上线,全部代码在文末,代码存在冗余 实战环境 被钓鱼机器不出网只可访问内部网络包含集团oss 实战思路 若将我们的shellcode文件上传到集团oss上仍无法上线,那么就利用oss做中转使用本地转发进行上线,先发送…...
Spring Boot 3.4.0 发行:革新与突破的里程碑
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
【网络安全】
黑客入侵 什么是黑客入侵? “黑客”是一个外来词,是英语单词hacker的中文音译。最初,“黑客”只是一个褒义词,指的是那些尽力挖掘计算机程序最大潜力的点脑精英,他们讨论软件黑客的技巧和态度,以及共享文化…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
今日科技热点速览
🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用
一、方案背景 在现代生产与生活场景中,如工厂高危作业区、医院手术室、公共场景等,人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式,存在效率低、覆盖面不足、判断主观性强等问题,难以满足对人员打手机行为精…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

