学术地址:https://www.gulixueyuan.com/my/course/322
学习大纲:
一、入门概述
第一课时:前言说明
- activeMQ:是什么?能干嘛?怎么用?
MQ(messageQ) = 消息中间件
消息:微信、短信、QQ
中间件:中间?是不是有左中右?是的。
微信为例:Send(消息的发送)--->服务器--->receive(消息的接收者)
第二课时:两种老师、两种学生
- 培训老师(会用不会说不懂原理)。
- 教育老师(不仅会用、更要会说、遇到类似技术会琢磨)
第三课时:MQ产品学习说明
- MQ产品种类(天上飞的理念,必然有落地的实现(产品))
KafKa:https://www.gulixueyuan.com/goods/show/188?targetId=292&preview=0
RabbitMQ、RocketMQ、ActiveMQ
2、单独以ActiveMQ产品纵向解读
API的发送和接收:
MQ的高可用性:就像服务器;不能在用户使用中经常性宕机
MQ集群和容错配置:不能在使用中经常性报错
MQ的持久化:所有操作日志,持久化报错数据、任何信息有理有据
延时发送/定时投递:就像我们的QQ邮件定时发送
签收机制:
Spring整合:......
第四课时:为什么要引入MQ - 生活案例
- 从生活的Case到实际生产案例
以学生请教老师问题为案例:
引入MQ之前:高并发情况下--->系统负担重,耦合度高,利用率极低
引入MQ之后:达到目的;解耦(直接找班长再找老师)、削峰(老师没有影响,降低系统负担)、异步(老师今天解决不了,根据约定上的手机号,改天通知学生)
第五课时:为什么要引入MQ - 实际技术生产案例
- 实际技术生产案例:
订单系统案例:
下单后--->调用锁定库存、减库、调支付、调物流系统。?如果上游系统有一个不通,全部都耗着等、性能下降的风险和危险
系统之间调用实际工程存在问题:
1、系统之间接口耦合性比较严重(解耦)
一个厨师只负责炒菜;没必要弄清顾客是谁、男的女的,要他知道,无非是给厨师增负担。
2、面对大量流量并发时,容易被冲垮(削峰)
3、等待同步,存在性能问题(异步)
问题总结:
只要是消息发送,都用异步,只要是系统解耦,都要接入消息中间件。
第六课时:MQ -作用定义