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

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 来拉取,如下所示:&#xff0…...

【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 创建分级菜单

菜单级别不确定&#xff0c;想要自适应&#xff0c;且可以折叠的菜单。 数据是一个数组。 <template><div class"Level" ref"Level"></div> </template>import {ref} from vue export default{data(){Level:ref(null),menuData…...

HDU Go Running(最小点覆盖 + 网络流优化)

题目大意&#xff1a;有一条无限长跑道&#xff0c;每个人可以规定自己跑步的方向&#xff0c;起点&#xff0c;跑步起止时间。每个人跑步的速度都是1m/s。最后从监控人员哪里得到了n个报告&#xff0c;每个报告给出了某人在某一时候所在的位置&#xff0c;问跑步的最少可能人数…...

C++设计模式-中介者模式

动机(Motivation) 多个对象相互关联的情况&#xff0c;对象之间常常会维持一种复杂的引用关系&#xff0c;如果遇到一些需求的更改&#xff0c;这种直接的引用关系将面临不断的变化。在这种情况下&#xff0c;可以使用一种”中介对象“来管理对象间的关联关系&#xff0c;避免…...

文件上传与下载服务 | Flask 实战

之前介绍了 droppy 文件共享服务的搭建。但在一些场景中&#xff0c;我们需要在命令行或在 Python 代码中&#xff0c;临时上传和下载文件。这时可以用一个更简单的策略&#xff1a;使用 flask 编写一个临时的 API。 服务端配置 以下是一个简单的 Flask 应用程序代码示例&…...

MySQL 中的排序:索引排序与文件排序

文章目录 MySQL 中的排序&#xff1a;索引排序与文件排序全解析一、引言二、索引排序&#xff08;一&#xff09;原理&#xff08;二&#xff09;示例 三、文件排序&#xff08;一&#xff09;单路排序&#xff08;二&#xff09;双路排序&#xff08;三&#xff09;归并排序 四…...

深入理解React Hooks:使用useState和useEffect

引言 React Hooks是React 16.8引入的一项强大功能&#xff0c;它使函数组件能够使用状态和其他React特性。本文将深入探讨两个最常用的Hooks&#xff1a;useState和useEffect&#xff0c;并通过实际代码示例展示它们的使用方法。 1. 什么是React Hooks&#xff1f; React Ho…...

AWS codebuild + jenkins + github 实践CI/CD

前文 本文使用 Jenkins 结合 CodeBuild, CodeDeploy 实现 Serverless 的 CI/CD 工作流&#xff0c;用于自动化发布已经部署 lambda 函数。 在 AWS 海外区&#xff0c;CI/CD 工作流可以用 codepipeline 这项产品来方便的实现&#xff0c; CICD 基本概念 持续集成( Continuous…...

Android PMS(Package Manager Service)源码介绍

文章目录 前言一、PMS 启动流程二、APK 安装流程三、APK 卸载流程四、权限管理静态权限动态权限 五、 数据存储与一致性六、 PMS 的安全性策略1、权限检查2、签名认证3、动态权限管理4、应用安装验证5、保护系统目录 七、PMS 调试方法总结 前言 PackageManagerService&#xf…...

运维面试整理总结

面试题可以参考:面试题总结 查看系统相关信息 查看系统登陆成功与失败记录 成功&#xff1a;last失败&#xff1a;lastb 查看二进制文件 hexdump查看进程端口或连接 netstat -nltp ss -nltp补充&#xff1a;pidof与lsof命令 pidof [进程名] #根据 进程名 查询进程id ls…...

图数据库 Cypher语言

图数据库 属性图 属性图&#xff08;Property Graph&#xff09;概述 属性图是一种广泛用于建模关系数据的图数据结构&#xff0c;它将**顶点&#xff08;节点&#xff09;和边&#xff08;关系&#xff09;**进行结构化存储&#xff0c;并为它们附加属性以提供丰富的语义信…...

阿里云oss转发上线-实现不出网钓鱼

本地实现阿里云oss转发上线&#xff0c;全部代码在文末&#xff0c;代码存在冗余 实战环境 被钓鱼机器不出网只可访问内部网络包含集团oss 实战思路 若将我们的shellcode文件上传到集团oss上仍无法上线&#xff0c;那么就利用oss做中转使用本地转发进行上线&#xff0c;先发送…...

Spring Boot 3.4.0 发行:革新与突破的里程碑

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

【网络安全】

黑客入侵 什么是黑客入侵&#xff1f; “黑客”是一个外来词&#xff0c;是英语单词hacker的中文音译。最初&#xff0c;“黑客”只是一个褒义词&#xff0c;指的是那些尽力挖掘计算机程序最大潜力的点脑精英&#xff0c;他们讨论软件黑客的技巧和态度&#xff0c;以及共享文化…...

在SQLyog中导入和导出数据库

导入 假如我要导入一个xxx.sql&#xff0c;我就先创建一个叫做xxx的数据库。 然后右键点击导入、执行SQL脚本 选择要导入的数据库文件的位置&#xff0c;点击执行即可 注意&#xff1a; 导入之后记得刷新一下导出 选择你要导出的数据库 右键选择&#xff1a;备份/导出、…...

RabbitMQ简单应用

概念 RabbitMQ 是一种流行的开源消息代理&#xff08;Message Broker&#xff09;软件&#xff0c;它实现了高级消息队列协议&#xff08;AMQP - Advanced Message Queuing Protocol&#xff09;。RabbitMQ 通过高效的消息传递机制&#xff0c;主要应用于分布式系统中解耦应用…...

使用LUKS对Linux磁盘进行加密

前言 本实验用于日常学习用&#xff0c;如需对存有重要数据的磁盘进行操作&#xff0c;请做好数据备份工作。 此实验只是使用LUKS工具的冰山一角&#xff0c;后续还会有更多功能等待探索。 LUKS&#xff08;Linux Unified Key Setup&#xff09;是Linux系统中用于磁盘加密的一…...

戴尔电脑安装centos7系统遇到的问题

1&#xff0c;找不到启动盘&#xff08;Operation System Loader signature found in SecureBoot exclusion database(‘dbx’).All bootable devices failed secure Boot Verification&#xff09; 关闭 Secure Boot&#xff08;推荐&#xff09;&#xff1a; 进入 BIOS/UEFI…...

3.4.SynchronousMethodHandler组件之ResponseHandler

前言 feign发送完请求后, 拿到返回结果, 那么这个返回结果肯定是需要经过框架进一步处理然后再返回到调用者的, 其中ResponseHandler就是用来处理这个返回结果的, 这也是符合正常思维的处理方式, 例如springmvc部分在调用在controller端点前后都会增加扩展点。 从图中可以看得…...

Linux 下进程的状态

操作系统中常见进程状态 在操作系统中有六种常见进程状态: 新建状态: 进程正在被创建. 此时操作系统会为进程分配资源, 如: 内存空间等, 进行初始化就绪状态: 进程已经准备好运行了, 只需要等待被调度, 获取 CPU 资源就可以执行了, 操作系统中可能同时存在多个进程处于就绪状…...

【计算机网络】核心部分复习

目录 交换机 v.s. 路由器OSI七层更实用的TCP/IP四层TCPUDP 交换机 v.s. 路由器 交换机-MAC地址 链接设备和设备 路由器- IP地址 链接局域网和局域网 OSI七层 物理层&#xff1a;传输设备。原始电信号比特流。数据链路层&#xff1a;代表是交换机。物理地址寻址&#xff0c;交…...

Spring Boot开发实战:从入门到构建高效应用

Spring Boot 是 Java 开发者构建微服务、Web 应用和后端服务的首选框架之一。其凭借开箱即用的特性、大量的自动化配置和灵活的扩展性&#xff0c;极大简化了开发流程。本文将以实战为核心&#xff0c;从基础到高级&#xff0c;全面探讨 Spring Boot 的应用开发。 一、Spring B…...

pyshark安装使用,ubuntu:20.04

1.容器创建 命令 docker run -d --name pyshark -v D:\src:/root/share ubuntu:2004 /bin/bash -c "while true;do sleep 1000;done" 用于创建并启动一个新的 Docker 容器。 docker run -d --name pyshark -v D:\src:/root/share ubuntu:2004 /bin/bash -c "w…...

基本功能实现

目录 1、环境搭建 2、按键控制灯&电机 LED 电机 垂直按键(机械按键) 3、串口调试功能 4、定时器延时和定时器中断 5、振动强弱调节 6、万年历 7、五方向按键 1、原理及分析 2、程序设计 1、环境搭建 需求: 搭建一个STM32F411CEU6工程 分析: C / C 宏定义栏…...