2022年-C#中高级开发工程师面试题【消息队列篇】
作者:互联网
心之所向,勇往直前!
简单归纳消息队列相关的面试题
正文
1. MQ的作用是什么?
解耦、异步、削峰
2. 如何保证消息队列的幂等性?
a. 消费操作时可以先校验数据是否重复再写入
b. 数据表设置唯一索引
c. 丢到redis里(分布式锁)
3. 如何保证消息队列的可靠性?(RabbitMq)
a. Confirm模式/启用事务
b. 启用持久化
c. ACK应答机制
4. 你是如何解决死信问题的?
a. Rabbitmq可以设置死信交换机
b. 可以自行实现一个缓存区,将死信消息先丢到缓存区,再跑定时任务检测重新发送
5. 什么情况下消息会进入死信队列?(RabbitMq)
a. 消息被拒收
b. 消息过期
c. 队列最大长度满了
6. 怎么实现延时队列?(RabbitMq)
使用TTL + 死信队列实现
7. 设置TTL的方式有几种,分别是什么?(RabbitMq)
有两种方式,基于队列设置、基于消息设置。如果同时使用了两种方式,则优先时间最小的
结语
本篇到此结束,如果有任何疑问或者指正,请发表在评论区。
标签:面试题,设置,C#,RabbitMq,队列,死信,消息,2022 来源: https://www.cnblogs.com/AssertionBird/p/16381157.html