第17章 MQ(一)

17.1 谈谈你对MQ的理解

难度:★

重点:★★

白话解析

MQ也要有一跟主线,先理解它是什么,从三个方面去理解就好了:1、概念;2、核心功能;3、分类。

1、概念:MQ(Message Queue),消息队列,是基础数据结构中“先进先出”的一种数据结构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递。说白了就是一个先进先出的队列,用来存消息数据的一个数据结构。

2、核心功能:

  • 流量消峰:说白了就是起到缓冲的中间层作用。当流量突然激增的时候,后台没有足够线程来处理,此时就可以把消息先存在队列里面,缓解后台压力。

  • 应用解耦:让两个应用不直接交互,而是让一个中间层起到连线的作用。例如下单操作时,即使后台服务挂掉了,也不会导致整个应用停掉。因为前端依然可以下单,然后下单的消息可以先存在队列里面。后台服务啥时候重启,啥时候去队列里面消费就好了。

  • 异步处理:还是可以理解成缓冲的概念,当前端发起请求下订单的时候,不直接调后台了,而是直接把这个请求丢给MQ,然后后台异步去慢慢拿请求消费。

3、分类:

  • ActiveMQ:

    a)单机吞吐量万级,吞吐量低;

    b)时效性毫秒级;

    c

你可能感兴趣的:(白话Java面试,rabbitmq,mq,消息队列,java)