RabbitMQ 面试
问:我看你在项目中使用到了RabbitMQ ,项目中哪些业务使用到了MQ。
答:我在失物认领项目中,需要将失物数据同步到ES中,所以使用到了RabbitMQ。
问:使用RabbitMQ 如何确保消息的不会丢失?
答:
- 开启生产者确认机制,确保消息到达MQ(效率低,一般是编程出现问题,所以一般不开起)
- MQ持久化消息,确保消息不回在MQ中丢失。(开启)
- 消费者确认机制,并且设置重试次数。(开启)
问:如何保证消息只被消费一次(幂等性)
答:
- 设置业务的唯一id
- 通过校验业务的状态值
问:RabbitMQ中死信交换机了解吗?(使用了解使用死信交换机来实现延迟队列)
答:了解,之前写一个小型的商城项目,该项目中有订购超时的业务,就是用死信交换机和消息存活时间来作为的。其实还是用使用RabbitMQ插件的实现的。
License:
CC BY 4.0