查看原文
其他

24道消息队列RabbitMQ面试题!

Java大后端 2019-11-02

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

 

2、什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的? 

  

3、RAM node 和 disk node 的区别? 

 

4、RabbitMQ 上的一个 queue 中存放的 message 是否有数量限制? 

 

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

 

6、vhost 是什么?起什么作用?  

 

7、在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange ,以及进行 binding 会有什么不同?  


8、客户端连接到 cluster 中的任意 node 上是否都能正常工作? 

 

9、若 cluster 中拥有某个 queue 的 owner node 失效了,且该 queue 被声明具有 durable 属性,是否能够成功从其他 node 上重新声明该 queue ? 

 

10、cluster 中 node 的失效会对 consumer 产生什么影响?若是在 cluster 中创建了 mirrored queue ,这时 node 失效会对 consumer 产生什么影响? 

 

11、能够在地理上分开的不同数据中心使用 RabbitMQ cluster 么? 

 

12、为什么 heavy RPC 的使用场景下不建议采用 disk node ? 

 

13、向不存在的 exchange 发 publish 消息会发生什么?向不存在的 queue 执行 consume 动作会发生什么? 

 

14、routing_key 和 binding_key 的最大长度是多少? 

 

15、RabbitMQ 允许发送的 message 最大可达多大? 

 

16、什么情况下 producer 不主动创建 queue 是安全的? 

 

17、“dead letter”queue 的用途? 

 

18、为什么说保证 message 被可靠持久化的条件是 queue 和 exchange 具有 durable 属性,同时 message 具有 persistent 属性才行? 

 

19、什么情况下会出现 blackholed 问题? 

 

20、如何防止出现 blackholed 问题? 

 

21、Consumer Cancellation Notification 机制用于什么场景? 


22、Basic.Reject 的用法是什么? 


23、为什么不应该对所有的 message 都使用持久化机制? 


24、RabbitMQ 中的 cluster、mirrored queue,以及 warrens 机制分别用于解决什么问题?存在哪些问题? 

 

点击“阅读原文”获取详细答案~

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存