首页 > 其他分享 >RabbitMQ2:介绍、安装、快速入门、数据隔离

RabbitMQ2:介绍、安装、快速入门、数据隔离

时间:2024-11-23 15:29:35浏览次数:12  
标签:入门 虚拟主机 队列 RabbitMQ2 rabbitMQ host 交换机 消息 隔离

欢迎来到“雪碧聊技术”CSDN博客!

在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将不断探索Java的深邃世界,分享最新的技术动态、实战经验以及项目心得。

让我们一同在Java的广阔天地中遨游,携手提升技术能力,共创美好未来!感谢您的关注与支持,期待在“雪碧聊技术”与您共同成长!

目录

一、介绍和安装

1、介绍

2、安装rabbitMQ(使用docker)

①首先创建一个自定义网络,使容器根据名称通信

② 运行docker命令,创建、运行rabbitMQ容器(如果没有rabbitMQ镜像,会自动拉取)

③查看mq容器是否运行

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

4、rabbitMQ的整体架构、核心概念

①publisher:消息的发送者,发送消息给交换机。

②exchange:交换机,负责把消息传给队列

③queue:队列,用于存储消息

④consumer:消息的消费者,通过监听队列来获取消息。

 5、虚拟主机(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、rabbitMQ的整体架构、核心概念

①publisher:消息的发送者,发送消息给交换机。

②exchange:交换机,负责把消息传给队列

③queue:队列,用于存储消息

④consumer:消息的消费者,通过监听队列来获取消息。

 5、虚拟主机(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,rabbitMQ,host,交换机,消息,隔离
From: https://blog.csdn.net/qq_63981644/article/details/143990935

相关文章

  • Unity入门需要学点什么?
    1.核心编程与优化C#高级技能熟练使用C#,掌握面向对象编程、泛型、LINQ、异步编程等。UnityAPI精通深入了解Unity生命周期(例如Awake、Start、Update、FixedUpdate)、事件系统、协程、组件架构。性能优化使用Profiler工具分析和优化性能。减少GC(垃圾回收)压力,优化内存分配。熟......
  • SpringMVC框架---SpringMVC概述、入门案例、常用注解
    目录第一章:三层架构和MVC1.三层架构2.MVC模型第二章:SpringMVC的入门案例1.SpringMVC的简介1.1SpringMVC介绍1.2SpringMVC执行过程2.SpringMVC的入门程序创建WEB工程,引入开发的jar包项目代码3.入门案例的执行过程分析4.RequestMapping注解第三章:请求参数的......
  • 【UE5】虚幻引擎入门
    就算被骂崇洋媚外,但我还是要说,外国人的技术教程做的就是比国内的教程强太多了。在B站上找了好几天的UE入门教程,每个教程都听了几节,听了一圈下来之后,这些教程给我的感觉都是非常的“零散”“啰嗦”。看着他们的目录,前几十集全在讲各种各样的基础知识和原理。我知道对于UE5这种庞......
  • 一文讲解SSH你一定不知道的八大黑科技玩法,网络安全零基础入门到精通教程建议收藏!
    SSH(SecureShell)是什么?是一项创建在应用层和传输层基础上的安全协议,为计算机上的Shell(壳层)提供安全的传输和使用环境。也是专为远程登录会话和其他网络服务提供安全性的协议。它能够有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防......
  • Java 多线程入门
    1进程与线程进程:进程是对运行时程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发。线程:线程是进程的子任务,是CPU调度和分派的基本单位,实现了进程内部的并发。比喻:进程:可以比作你开的一把游戏。线程:可以比作你所选的英雄或者是游戏中的水晶、野怪等......
  • AI大佬强推的大语言模型入门书籍:《大模型时代》开启人工智能狂潮!
    《大模型时代》是最近正在读的一本非常有趣的书,这本书可以说是一本GPT科普读物,以拟人化的手法,在趣味中讲述了ChatGPT的原理。这本书在通俗性和专业性上并存,严谨性和趣味性同在,作者很会玩儿梗,使得科普读物不再乏味无趣。书名:《大模型时代》作者:龙志勇,黄雯出版年份:2023年出......
  • WeUI 小白入门指南教程
    WeUI是什么?WeUI是由腾讯团队开发的一个轻量级前端UI库,它基于微信设计指南,旨在帮助开发者快速构建美观且一致的微信小程序或移动网页界面。WeUI采用了BEM(BlockElementModifier)国际命名规范,确保了代码的简洁性和高复用性。WeUI官方Github:https://github.com/Tence......
  • 【新人系列】Python 入门(十二):函数基础
    ✍个人博客:https://blog.csdn.net/Newin2020?type=blog......
  • python 入门九大排序:1冒泡排序2插入排序3选择排序4快速排序5归并排序6堆排序7计数排序
    1冒泡排序:冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。代码如下:importnumpyasnpdefbubbling(arr):n=len(arr)foriinrange(n-1):forjinrange(n-i-1):ifarr[j......
  • 黑客新手入门应该懂的Linux 细节知识
    Linux到底是什么?Linux是_*一个_*家族开源的类Unix操作系统基于Linux内核l.Linux是LinusTorvalds的创意。显然.他制作Linux是为了好玩,并于1991年9月17日发布了Linux的第一个版本。据传Linux的创造者打算将他的发明命名为Freax,但未经LinusTorvalds......