【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 创建新的虚拟主机

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

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

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

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

相关推荐
努力的小郑2 天前
从一次分表实践谈起:我们真的需要复杂的分布式ID吗?
分布式·后端·面试
AAA修煤气灶刘哥3 天前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记
redis·分布式·后端
往事随风去3 天前
架构师必备思维:从“任务队列”到“事件广播”,彻底吃透消息队列两大设计模式
消息队列·rabbitmq
Aomnitrix3 天前
知识管理新范式——cpolar+Wiki.js打造企业级分布式知识库
开发语言·javascript·分布式
程序消消乐3 天前
Kafka 入门指南:从 0 到 1 构建你的 Kafka 知识基础入门体系
分布式·kafka
智能化咨询3 天前
Kafka架构:构建高吞吐量分布式消息系统的艺术——进阶优化与行业实践
分布式·架构·kafka
Chasing__Dreams3 天前
kafka--基础知识点--5.2--最多一次、至少一次、精确一次
分布式·kafka
在未来等你3 天前
Elasticsearch面试精讲 Day 17:查询性能调优实践
大数据·分布式·elasticsearch·搜索引擎·面试