消息队列RabbitMQ的常见面试题

1、使用RabbitMQ有什么好处?

  1. 解耦,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!
  2. 异步,将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度。
  3. 削峰,并发量大的时候,所有的请求直接怼到数据库,造成数据库连接异常。

2、RabbitMQ 中的 broker 是指什么?cluster 又是指什么?

broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ 应用程序。cluster 是在 broker 的基础之上,增加了 node 之间共享元数据的约束。

3、RabbitMQ 概念里的 channel、exchange 和 queue 是逻辑概念,还是对应着进程实体?分别起什么作用?

queue 队列:具有自己的 erlang 进程;

exchange 交换机:内部实现为保存 binding 关系的查找表;

channel 通道:是实际进行路由工作的实体,即负责按照 routing_key 将 message 投递给 queue 。由 AMQP 协议描述可知,channel 是真实 TCP 连接之上的虚拟连接,所有 AMQP 命令都是通过 channel 发送的,且每一个 channel 有唯一的 ID。一个 channel 只能被单独一个操作系统线程使用,故投递到特定 channel 上的 m

猜你喜欢

转载自blog.csdn.net/qq_34820803/article/details/108194763