一、RabbitMQ介绍
1、什么是MQ
MQ(message queue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务。
2、MQ的优缺点
优点:
异步通信:消息队列允许多个处理程序并行处理消息,这可以减轻应用程序的负载,提高系统的吞吐量。
可靠性:消息队列通常支持事务性操作,这有助于确保消息的可靠传递,以及在失败时能够进行重试。
解耦:消息队列可以用于将应用程序的不同部分解耦,使它们能够以松散或独立的方式进行通信。
可扩展性:MQ支持在分布式系统中进行扩展,允许系统之间的通信跨越不同的节点和网络。削峰填谷:举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限制订单超过一万后不允许用户下单。使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单分散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单的体验要好。
缺点:延迟:如果多个消息