消息队列RabbitMQ常见面试题总结(附答案)

消息队列RabbitMQ常见⾯试题总结(附答案)
1. RabbitMQ的使⽤场景有哪些?
跨系统的异步通信
amadori多个应⽤之间的耦合
应⽤内的同步变异步
消息驱动的架构
2. RabbitMQ有哪些重要的⾓⾊?
⽣产者,消费者,代理
3. RabbitMQ有哪些重要的组件?
ConnectionFactory(连接管理器)
Channel(信道)
Exchange(交换器)
Queue(队列)
RoutingKey(路由键)
BindingKey(绑定键)
4. RabbitMQ 中vhost的作⽤是什么?
虚拟的broker,最重要的是拥有独⽴的权限系统,可以做到vhost范围的⽤户控制
5. RabbitMQ的消息是怎么发送的?
必须连接到RabbitMQ服务器才能发布和消费消息,它们之间会创建⼀个tcp连接,⼀旦tcp打开并通过了认证,就会 创建⼀条amqp信道,信道是创建在“真实”的tcp上的蓄奴链接,amqp命令都是通过信道发送出去。
6. RabbitMQ怎么保证消息的稳定性?
提供事务的功能,通过将channel设置为confirm模式
7. RabbitMQ怎么避免消息丢失?
消息持久化,ack确认机制,设置集镜像模式,消息补偿机制
8. 要保证消息持久化成功的条件有哪些?
声明队列必须设置持久化durable设置为true
消息推送投递模式必须设置持久化,deliverymode设置为2
消息已经到达持久化交换器
消息已经到达持久化队列
以上都满⾜才能保证消息持久化成功
9. RabbitMQ持久化有什么缺点?
米饭碗持久化的缺点就是降低了服务器的吞吐量
因为使⽤的是磁盘⽽⾮内存存储碱式氧化锰
电动车防盗器原理
从⽽降低了吞吐量,可尽量使⽤ssd硬盘来缓解吞吐量问题
10. RabbitMQ有⼏种⼴播类型?
direct(默认⽅式):最基础最简单的模式,发送⽅把消息发送给订阅⽅,如果有多个订阅者,默认采取轮询的⽅式进⾏消息发送。headers:与 direct 类似,只是性能很差,此类型⼏乎⽤不到。
fanout:分发模式,把消费分发给所有订阅者。
topic:匹配订阅模式,使⽤正则匹配到消息队列,能匹配到的都能接收到。
11. RabbitMQ怎么实现延迟消息队列?
通过消息过期后进⼊死信交换器再由交换器转发到延迟消费队列,实现延迟功能
使⽤RabbitMQ - deleayed - message-exchange 插件实现
12. RabbitMQ集有什么⽤?
主要作⽤:
⾼可⽤:某个服务器出现问题,整个RabbitMQ还可以继续使⽤
10658154⾼容量:集可以承载更多的消息量。
13. RabbitMQ节点的类型有哪些?
磁盘节点:消息会存储到磁盘
内存结点:消息都存储在内存中,重启服务器消息丢失,性能⾼于磁盘类型。
农用保水剂14. RabbitMQ集搭建需要注意哪些问题?
各节点之间使⽤“–link”连接,不能忽略
各节点使⽤的erlang cokkie值必须相同,此值相当于“密钥”的功能,⽤于各节点的认证
整个集中必须包含⼀个磁盘节点
15. RabbitMQ每个节点是其他节点的完整拷贝吗?为什么?
不是
存储空间的考虑:如果每个节点都拥有所有队列的完全拷贝,这样的新增节点不当没有新增存储空间,反⽽增加了更多的冗余数据
性能的考虑:如果每条消息都需要完整拷贝到每⼀个节点,那新增节点并没有提升处理消息的能⼒,最多时保持和单节点相同的性能甚⾄是更糟
16. RabbitMQ集中唯⼀⼀个磁盘节点崩溃了会发⽣什么情况?
不能创建队列
不能创建交换器
不能创建绑定
不能添加⽤户
不能更改权限
不能添加和删除集节点
17. RabbitMQ对集节点停⽌顺序有要求吗?
RabbitMQ 对集的停⽌的顺序是有要求的,应该先关闭内存节点,最后再关闭磁盘节点。如果顺序恰好相反的话,可能会造成消息的丢失。

本文发布于:2024-09-22 15:36:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/183306.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消息   节点   队列
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议