栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

RabbitMQ面试问题

RabbitMQ面试问题

RabbitMq
  • 面试问题
    • 1、消息队列的作用和场景?
    • 2、Channel和Vhost的作用是什么?
    • 3、RabbitMQ的消息有哪些路由方式?适合什么业务场景?
    • 4、交换机与队列、队列于消费者绑定关系如何?多个消费者监听一个队列,消息会重复消费吗?
    • 5、无法被路由的消息,去了哪里?
    • 6、消息在什么时候会变成Dead Letter(死信)?
    • 7、如果一个项目代码要从多个服务器接收消息来消费,怎么做?如果一个项目要发送消息到多个服务器,怎么做?
    • 8、RabbitMq如何实现延迟队列?
    • 9、哪些情况会导致消息丢失?怎么解决?
    • 10、一个队列最多可以存放多少条消息?
    • 11、可以用队列的x-max-length最大消息数来实现限流?例如秒杀场景
    • 12、如何提高消息的消费速率?
    • 13、AmqpTemplate和RabbitTemplate的区别?
    • 14、如何动态的创建队列和消费者?
    • 15、Spring AMQP中消息怎么封装?用什么转换?
    • 16、如何保证消息的顺序性?
    • 17、RabbitMQ的集群节点类型?
    • 18、如何保证RabbitMQ的高可用?
    • 19、大量消息堆积怎么办?
    • 20、设计一个MQ,你的思路是什么?

面试问题 1、消息队列的作用和场景?

用在异步、解耦、削峰的业务中

2、Channel和Vhost的作用是什么?

Channel:减少TCP资源消耗。也是重要的编程接口。
Vhost:提高资源利用率,实现资源隔离。

3、RabbitMQ的消息有哪些路由方式?适合什么业务场景?

Direct、Topic、Fanout
Direct:直连交换机,用于等值匹配
Topic:主题交换机,模糊匹配,用于不确定的业务场景
Fanout:广播交换机

4、交换机与队列、队列于消费者绑定关系如何?多个消费者监听一个队列,消息会重复消费吗?

多对多关系。
不会重复消费,因为默认轮询(平均分发)

5、无法被路由的消息,去了哪里?

直接丢弃。可用备份交换机回收。

6、消息在什么时候会变成Dead Letter(死信)?

消息过期;
消息超过队列最大长度或最大容量。
消息被拒绝并且未被设置重回队列

7、如果一个项目代码要从多个服务器接收消息来消费,怎么做?如果一个项目要发送消息到多个服务器,怎么做?

定义多个ConnectionFactory,注入到消费者监听类Template。

8、RabbitMq如何实现延迟队列?

基于数据库+定时任务。
或者消息过期+死信队列;
或者使用RabbitMq延迟插件;

9、哪些情况会导致消息丢失?怎么解决? 10、一个队列最多可以存放多少条消息? 11、可以用队列的x-max-length最大消息数来实现限流?例如秒杀场景

不能。因为会删除最先入队列(对头)的消息,这不公平

12、如何提高消息的消费速率?

创建多个消费者。

13、AmqpTemplate和RabbitTemplate的区别?

Spring AMQP是Spring整合AMQP的一个抽象。Rabbit是一个具体实现。

14、如何动态的创建队列和消费者?

通过ListenContainer。

15、Spring AMQP中消息怎么封装?用什么转换?

Message、MessageConvertor

16、如何保证消息的顺序性?

一个队列只有一个消费者。

17、RabbitMQ的集群节点类型?

磁盘节点和内存节点

18、如何保证RabbitMQ的高可用?

HAProxy(LVS)+Keepalived

19、大量消息堆积怎么办?

1)重启(滑稽)
2)多创建几个消费者同时消费
3)直接清空队列,重发消息

20、设计一个MQ,你的思路是什么?

存储和转发。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/650437.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号