RabbitMQ面试题
什么是RabbitMQ
使用AMQP高级队列协议的一种消息队列技术,最大的特点就是消费并不需要确保提供方存在,实现了服务之间的高度解耦
什么是AMQP
AMQP(Advanced Message Queuing Protocol)高级消息队列协议,一个提供统一消息服务的应用层标准协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP是一个进程间传递异步消息的网络协议。
基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP在消息提供者和客户端的行为进行了强制规定,使得不同卖商之间真正实现了互操作能力。
为什么要使用RabbitMQ(优点)
异步:主流程只需要完成业务的核心功能;对于业务非核心功能将消息放入消息队列之中进行异步处理,减少请求的等待,提高系统的总体性能
解耦:将系统按照不同的业务功能来拆分出来,消费生产者只管把消息发布到MQ中而不用管谁来取,消息消费者只管从MQ中取消息而不管是谁发布的,消息生产者和消费者都不知道对方的存在
削峰/限流:将所有的请求都写到消息队列中,消费服务器按照自