【RabbitMQ | 第2篇】RabbitMQ 控制台实现消息路由 + 数据隔离

文章目录

  • 同步调用和异步调用
  • MQ
  • RabbitMQ
    • [1. RabbitMQ控制台实现交换机路由到队列](#1. RabbitMQ控制台实现交换机路由到队列)
      • [1.1 创建队列](#1.1 创建队列)
      • [1.2 将消息发送给交换机,是否会到达队列](#1.2 将消息发送给交换机,是否会到达队列)
    • [2. RabbitMQ控制台实现数据隔离](#2. RabbitMQ控制台实现数据隔离)
      • [2.1 添加一个用户](#2.1 添加一个用户)
      • [2.2 创建新的虚拟主机](#2.2 创建新的虚拟主机)

同步调用和异步调用

同步调用 是指完成一个功能,其内部有多个任务,要一直等待这几个任务全都完成后,才算这个功能的结束。

e.g 比如,在登录的时候,原本只需要校验用户名和密码,但需求说的是,还需要给用户发一条短信,或者还需要给用户加积分之类的。如果是同步的话,那么用户登录就不仅仅是校验用户名和密码,还要一直等待成功发送短信或加完积分后,才能进入网页。

这样,用户等待时间较长,性能就比较差。

异步调用 是指只完成必要的任务,其余任务交给消息代理 ,由消息代理去慢慢通知消息处理方处理,用户就不需要一直等待,把任务通知给消息代理即可。
优点 :性能较好,无需等待;缓存消息,流量削峰填谷。
缺点:不能立即调用结果;不确定后序任务时候执行成功;依赖于消息代理的可靠性。

MQ

MQ(MessageQuque):消息队列,存放消息的一种队列。

常见:RabbitMQ、RocketMQ、Kafka、ActiveMQ。

RabbitMQ RocketMQ Kafka ActiveMQ
公司 Rabbit 阿里 Apache Apache
开发语言 Erlang Java Scala&Java Java
协议支持 AMQP, XMPP, SMTP, STOMP 自定义协议 自定义协议 OpenWrite, STOMP, REST, XMPP, AMQP
可用性 一般
单机吞吐量(QPS) 一般 非常高
消息延迟 微妙级 毫秒级 毫秒以内 毫秒级
消息可靠性 一般 一般

RabbitMQ 的延迟性最好(微秒级),Kafka 的吞吐量最高(百万级别的 QPS)。

RabbitMQ

publisher(消息发送者)、exchange(交换机)、queue(队列)、consumer(消息消费者)、virtual-host(虚拟主机)

消息模型:

消息发送者将消息发送给交换机,交换机路由到队列,消费者监听队列。

为什么有 virtual-host 的存在 ?

一个公司中不同项目使用同一套 MQ 的服务,那这样不同项目的交换机和队列就可能会有冲突。所以就像数据库一样,每个项目有自己的 virtual-host,不同的 virtal-host 有不同的交换机和队列,那么不同的 virtual-host 内的队列和交换机就不会产生影响。 ------ 数据隔离作用

1. RabbitMQ控制台实现交换机路由到队列

1.1 创建队列

1.2 将消息发送给交换机,是否会到达队列

交换机绑定队列:

绑定后,点击绑定的队列,可以看到:

模拟交换机接受消息和路由消息:

发送后,交换机显示:

发送后,队列 hello.que1 中:

交换机负责路由和转发消息,本身不具备存储消息的能力。

2. RabbitMQ控制台实现数据隔离

2.1 添加一个用户

可以看到,此时新增的用户是没有虚拟主机的:

点击退出登录后,使用刚刚新创建的用户登录:

此时没有虚拟主机,无法进行任何的操作的。

2.2 创建新的虚拟主机

查看当前用户的虚拟主机:

切换至刚刚创建的虚拟主机下,就不存在之前创建的队列了:

不同虚拟主机下的交换机:

一般,不同的项目就创建不同的虚拟主机,保证数据的隔离

相关推荐
5008410 小时前
昇腾 CANN 的五层架构,到底分了哪五层
java·人工智能·分布式·架构·ocr·wpf
song50111 小时前
Ascend C 算子开发:从入门到上手
c语言·开发语言·图像处理·人工智能·分布式·flutter·交互
小钻风336612 小时前
ZooKeeper + Kafka 集群搭建实战记录
分布式·zookeeper·kafka
星轨zb14 小时前
JUC 到 Redis 分布式锁:一次关于高并发的性能压测实验
java·redis·分布式·jmeter
心中有国也有家15 小时前
PaddlePaddle 适配 NPU 的技术全解析——从算子接入到端到端性能优化
人工智能·分布式·算法·性能优化·架构·paddlepaddle
郑小憨15 小时前
zookeeper内部原理 (进阶介绍 三)
大数据·分布式·zookeeper
java1234_小锋15 小时前
【吊打面试官系列-ZooKeeper面试题】zookeeper 是如何保证事务的顺序一致性的?
分布式·zookeeper·云原生
小江的记录本15 小时前
【Kafka核心】Kafka 3.0+ KRaft模式(替代ZooKeeper)核心原理与优势
java·数据库·分布式·后端·zookeeper·kafka·rabbitmq
bing_15815 小时前
Zookeeper 在 Kafka 中扮演了什么角色?
分布式·zookeeper·kafka
my195870213516 小时前
ZooKeeper分布式协调从入门到实战
分布式·zookeeper·云原生