文章目录
-
-
- 1、什么是rabbitmq?
- 2、为什么要使用rabbitmq?
- 3、使用rabbitmq的场景。
- 4、如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?
- 5.如何避免消息重复投递或重复消费?
- 6、消息基于什么传输?
- 7、消息如何分发?
- 8、消息怎么路由?
- 9、如何确保消息不丢失?
- 10、使用RabbitMQ有什么好处?
- 11、RabbitMQ的集群。
- 12、mq的缺点
- 13、什么是MQ ?
- 14、MQ的优点。
- 15、解耦、异步、削峰是什么?
- 16、消息队列有什么缺点?
- 17、你们公司生产环境用的是什么消息中间件?
- 18、Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?
- 19、MQ有哪些常见问题?如何解决这些问题?
- 20、RabbitMQ基本概念。
- 21、RabbitMQ的工作模式。
- 22、如何保证RabbitMQ消息的顺序性?
- 23、消息如何分发?
- 24、消息怎么路由?
- 25、消息基于什么传输?
- 26、如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?
- 27、如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
- 28、如何保证RabbitMQ消息的可靠传输?
- 29、为什么不应该对所有的message都使用持久化机制?
- 30、如何保证高可用的?RabbitMQ的集群?
- 31、如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,怎么办?
- 32、设计MQ思路。
-
- 总结
最近面试的小伙伴很多,对此我整理了一份Java面试题手册:基础知识、JavaOOP、Java集合/泛型面试题、Java异常面试题、Java中的IO与NIO面试题、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、SpringBoot、SpringCloud、RabbitMQ、Dubbo、MyBatis、ZooKeeper、数据结构、算法、Elasticsearch、Kafka、微服务、Linux等等。可以分享给大家学习。【持续更新中】
完整版Java面试题地址:【2021最新版】Java面试真题汇总
1、什么是rabbitmq?
答:
采用AMQP高级消息队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦。
2、为什么要使用rabbitmq?
答:
1、在分布式系统下具备异步,削峰,负载均衡等一系列高级功能;
2、拥有持久化的机制,进程消息,队列中的信息也可以保存下来。
3、实现消费者和生产者之间的解耦。
4、对于高并发场景下,利用消息队列可以使得同步访问变为串行访问达到一定量的限流,利于数据库的操作。
5、可以使用消息队列达到异步下单的效果,排队中,后台进行逻辑下单。
3、使用rabbitmq的场景。
答:
1、服务间异步通信
2、顺序消费
3、定时任务
4、请求削峰
4、如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?
答:
发送方确认模式
1.将信道设置成confirm模式(发送方确认模式),则所有在信道上发布的消息都会被指派一个唯一的ID。
2.一旦消息被投递到目的队列后,或者消息被写入磁盘后(可持久化的消息),信道会发送一个确认给生产者(包含消息唯一 ID)。
3.如果 RabbitMQ发生内部错误从而导致消息丢失,会发送一条nack(notacknowledged,未确认)消息。发送方确认模式是异步的,生产者应用程序在等待确认的同时,可以继续发送消息。当确