RabbitMQ(控制台模拟收发消息与数据隔离)

1.RabbitMQ架构图

  • publisher:生产者,也就是发送消息的一方

  • consumer:消费者,也就是消费消息的一方

  • queue:队列,存储消息。生产者投递的消息会暂存在消息队列中,等待消费者处理

  • exchange:交换机,负责消息路由。生产者发送的消息由交换机决定投递到哪个队列。

  • virtual host:虚拟主机,起到数据隔离的作用。每个虚拟主机相互独立,有各自的exchange、queue

2.模拟收发消息

一.交换机

1.进去任意一个交换机,模拟生产者发送消息

2.由于没有消费者存在,最终消息丢失了,这样说明交换机没有存储消息的能力。

二.队列

1.添加两个队列:hello.queue1与hello.queue2

2.交换机与消息队列绑定

3.交换机再次发送消息

此时若有消费者监听了MQ的hello.queue1hello.queue2队列,就会消费该消息。

3.数据隔离

1.用户管理:

这里的用户都是RabbitMQ的管理或运维人员。

  • Nameitheima,也就是用户名

  • Tagsadministrator,说明itheima用户是超级管理员,拥有所有权限

  • Can access virtual host/,可以访问的virtual host,这里的/是默认的virtual host

当多个项目同时使用时,为了避免互相干扰,可以利用virtual host的隔离特性,将不同的项目隔离

2.virtual host

1.添加一个用户(此时没有设置virtual host)

2.切换用户为新建的用户

3.添加一个单独的virtual host

4.切换virtual host路径(此时便将/的消息队列隔离了)

相关推荐
..空空的人2 小时前
C++基于protobuf实现仿RabbitMQ消息队列---项目设计
分布式·rabbitmq
小满、5 小时前
RabbitMQ:Fanout、Direct、Topic 交换机、队列声明与消息转换器
java·分布式·消息队列·rabbitmq·spring amqp
Wang's Blog5 小时前
RabbitMQ: 分布式事务的最终一致性解决方案
分布式·rabbitmq
云和数据.ChenGuang17 小时前
OpenEuler系统下RabbitMQ安装与基础配置教程
服务器·分布式·rabbitmq·ruby·数据库运维工程师·运维教程
云和数据.ChenGuang1 天前
Deepseek适配场景:OpenEuler系统下RabbitMQ安装与基础配置教程
分布式·rabbitmq·ruby
Wang's Blog1 天前
RabbitMQ: 消息发送失败的重试机制设计与实现
分布式·rabbitmq
武子康1 天前
Java-206 RabbitMQ 发布订阅(fanout)Java 实战:推/拉模式、ACK 与绑定排错全梳理
java·分布式·消息队列·rabbitmq·rocketmq·java-rabbitmq·mq
武子康1 天前
Java-207 RabbitMQ Direct 交换器路由:RoutingKey 精确匹配、队列多绑定与日志分流实战
java·消息队列·rabbitmq·erlang·ruby·java-rabbitmq
sinat_363954232 天前
canal-deployer1.1.8 + mysql + rabbitmq消息队列
mysql·rabbitmq
武子康2 天前
Java-204 RabbitMQ Connection/Channel 工作流程:AMQP 发布消费、抓包帧结构与常见坑
java·分布式·消息队列·rabbitmq·ruby·java-activemq