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

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

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

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

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

相关推荐
guo_wen_qiang1 小时前
kafka重复消费
分布式·kafka
霸道流氓气质1 小时前
分布式锁(Distributed Lock)详解
分布式
j7~2 小时前
【仿 RabbitMQ 项目】发布订阅消息队列 (篇九):队列数据管理,内存镜像 + SQLite 持久化实现
数据库·c++·分布式·sqlite·rabbitmq·队列数据管理
做一个AK梦2 小时前
分布式CAP理论
分布式
此时不提桶,更待何时15 小时前
06-23-A-RabbitMQ生态集成详解
分布式·rabbitmq
m0_6464299720 小时前
RabbitMQ 核心知识总结(生产实战版)
分布式·rabbitmq
DBA_G1 天前
GBase 8c分布式数据库客户端工具 gsql
数据库·分布式
chunyublog1 天前
Spark 词频统计练习
大数据·分布式·spark
acrel71 天前
高速公路分布式光伏并网电能质量与安全保护方案应用
分布式·安全
IT小小猪1 天前
# Hadoop 3.3.6 完全分布式集群部署知识库
hadoop·分布式·eclipse