消息队列
消息队列是现在分布式架构中使用较多的组件,消息队列使用的常用场景是:一个系统、不同接口之间存在相互调用的关系,当不需要立即获得结果,但是系统的并发量又需要进行控制的时候,就是需要消息队列的时候。
消息队列主要解决了应用耦合、异步处理、削峰限流等问题。
·应用耦合:主要是通过消息队列对同一消息进行处理,避免调用接口失败导致整个过程失败;
·异步处理:主要是通过消息队列中同一消息进行处理,应用间并发处理消息,和串行处理相比,大幅度减少处理时间;
·削峰限流:主要应用于秒杀场景中,避免流量过大导致应用系统挂掉的情况。
目前市场上大家使用较多的消息队列有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq等。
不同的消息队列之间对比如下图:
RabbitMQ介绍
首先对RabbitMQ做一个简单的了解:
RabbitMQ 2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。