请你说一下RabbitMQ是如何进行消息持久化的?
RabbitMQ进行消息持久化包括三个部分:
第一,Exchange(交换机)持久化,声明时指定Durable(英文意思:持久的)为True;
第二,Queue持久化,同样在声明时指定Durable为True;
第三,消息持久化,在投递时指定delivery_mode为2(非持久化设置为1)。
💯💯💯💯💯💯
补充说明(别等面试官问的意思):
1、Exchange和Queue必须同时是持久化的,它们之间的绑定才能是持久化的,否则,不允许建立绑定关系;
2、Exchange和Queue一旦创建,其是否持久化的标志就不能改变了,想改变,那就先删除再重新创建。
追问清单:
- 什么是消息队列?它的作用是什么?(解耦、异步、削峰、限流)
- RabbitMQ是如何实现消息队列的?(包含的角色,角色间是如何联系的?就是答RabbitMQ是如何构造消息队列的?)
- RabbitMQ的交换机都有哪些类型?分别是干什么用的?
- 生产者和消费者在RabbitMQ中是如何工作的?
- 如何保证消息不会被重复消费?
- RabbitMQ如何保证消息的可靠性传输?
- RabbitMQ如何保证消息的有序性?
- RabbitMQ如何实现高可用?
- 出现消息堆积的情况,该如何处理?
追问清单如上,当然了,这些追问清单后续的文章也会一一回答的,不是说RabbitMQ这个主题写了这一篇面试技巧就不管了,也欢迎大家持续关注~
这些问题也能给面试官作为面试提问的素材哈~~