ActiveMQ(一)之对MQ的理解
什么是MQ?
-
mq(message queue消息队列)
-
面向消息的中间件,我的理解就是代理中间商。
-
它可以流量削峰、异步处理、应用解耦等特性
- 什么是应用解耦?
此时:系统A调用系统B和C
新增需求:我们让系统A还用掉D
怎么办?只能够修改系统A的代码,让他去调用D
如果我们新增很多歌系统,而且让系统A调用系统D?
这就需要大量的修改系统A的代码,就会导致整个应用耦合度提高。
怎么办?MQ可以用来解决这个问题。
我么这样理解:系统A是发送者,系统B、C是消费者
发送者和接受者不必了解对方,只需要消息确认。
系统A发送消息给mq,让mq发消息给系统B,让系统B处理一下
- 什么是流量削峰?
当浏览器发送一条请求的时候,服务器立马给我们响应。
但是如果我们在某一时刻发送一百万条数据甚至一千万条数据的时候,服务器就跟我们人一样,立马就会累趴下。导致系统崩溃。怎么办?
我们的MQ会解决这个问题。
这里的mq就相当于一个流量缓存池。将请求发送到mq,让mq发送到服务器。
结合现实:就是让人们进行排队,从而达到流量削峰的手段
- 什么是异步处理?
在某一时刻,系统A和系统B调用系统C,系统跟我们人一样,它每次在一个时刻处理一个任务,如果先处理系统A的话,系统B就会等待。
如果系统C处理系统A需要10秒钟甚至更久的haughty,系统B就会一直等待
怎么办?
我们的MQ就会解决这个问题。
我们添加一个mq消息队列,系统A发送消息到mq就去执行其他的事情,把调用系统C的事情交给mq帮助我们发送消息,这不就让系统A不用干等吗?
O(∩_∩)O哈哈~真聪明
这就是异步处理:我去忙别的了,但是你需要帮我发送。