学习Java第四十六天——黑马商城MQ入门85~100
文章目录
- MQ
-
- MQ入门-01.MQ课程介绍
- MQ入门-02.初识MQ
-
- MQ入门-02.初识MQ-同步调用优缺点
- MQ入门-03.初识MQ-异步调用优缺点
- MQ入门-04.初识MQ-技术选型
- MQ入门-05.RabbitMQ
-
- MQ入门-05.RabbitMQ-安装部署
- MQ入门-06.RabbitMQ-快速入门
- MQ入门-07.RabbitMQ-数据隔离
- MQ入门-08.Java客户端
-
- MQ入门-08.Java客户端-快速入门
- MQ入门-09.Java客户端-WorkQueue
- MQ入门-10.Java客户端-Fanout交换机
- MQ入门-11.Java客户端-Direct交换机
- MQ入门-12.Java客户端-Topic交换机
- MQ入门-13.Java客户端-基于Bean声明队列交换机
- MQ入门-14.Java客户端-基于注解声明队列交换机
- MQ入门-15.Java客户端-消息转换器
- MQ入门-16.业务改造
MQ
MQ入门-01.MQ课程介绍
调用者发起请求后需要等待服务提供者执行业务返回结果后,才能继续执行后面的业务。也就是说调用者在调用过程中处于阻塞状态,因此我们称这种调用方式为同步调用,也可以叫同步通讯。
我们的课程主要分为两大部分:基础篇和高级篇。
在基础篇中,我们会带着大家学习 MQ 中最实用的一些技术,也就是在企业开发中应用最广泛、用于解决常见开发问题的技术。主要内容包括同步与异步的使用场景及其差异、MQ 技术的选型分析(为什么选择 RabbitMQ)、MQ 中的数据隔离技术、SpringAMQP 的用法、Work 模式、MQ 消息转换器,以及发布订阅消息堆积问题的处理等。掌握了这些内容,基本上就能够解决开发过程中最常见的问题。
接下来是高级篇。这一部分主要涉及工作中少量的疑难问题,以及面试中常见的高频问题。内容包括:消息发送失败的处理机制、发送者的重连与确认机制,以确保消息能够成功发送到 MQ;消息进入 MQ 之后,系统如何应对高并发消息量的问题;以及 Lazy Queue 稳定队列的使用。同时,还会讲解如何保证消息的安全性——通过 MQ 的持久化机制确保消息能够保存到磁盘。消费者在接收消息后,也需要确保消息被正确消费,因此会涉及消费者确认机制和消费者失败重试机制。由于重试可能导致消息重复发送,还需要实现业务的幂等性,这是 MQ 处理中一个较为复杂的难点问题。最后,我们还会介绍延迟消息这一热点技术。延迟消息是 MQ 在实际应用中非常重要的一个功能模块,也是在许多高性能系统中广泛使用的关键技术。
MQ入门-02.初识MQ
MQ入门-02.初识MQ-同步调用优缺点
当然不是说同步调用就是完全就是不可用的啊,在用户扣余额的这个时候,我们就应该用同步调用,因为我需要知道它的结果才能去做下一步操作,而根据结果做判断嘛对吧,所以不得不用同步调用。而但是呢在后续这些边缘业务,跟我这个支付业务不相关的业务,就不想去同步调用,因为跟我没关系还要调用你来影响我。
同步调用优势:也就是说它能够立刻得到结果。所以呢如果你的项目的某一个业务,它是需要根据调用的结果去做后续处理的,你就应该用同步调用。事实上百分之八九十的业务都是这样子,需要同步调用。
MQ入门-03.初识MQ-异步调用优缺点
弹幕:没有什么是加一层解决不了的。
什么叫“流量削峰填谷”:
大家思考一下,我们现在的支付业务,是不是一个并发比较高的业务?当然,它的并发不是一直都很高。比如现在比较流行的直播带货。主播在那儿倒数“三、二、一,上架!”的那一瞬间,是不是无数的人同时进来抢购、支付?这个时候流量就会瞬间激增,很有可能一下子就把你的服务压垮。但是,当这一波货上架抢完之后,接下来主播开始介绍产品,这个阶段的服务器流量就会非常低。等到下一次“3、2、1上架”时,流量又会迅速飙升。所以,你会发现服务器的流量是忽高忽低、波动明显的:有时候突然飙升,把服务器“干趴下”;有时候又几乎没有流量,服务器闲着没事做。这样一来,不仅没有充分利用服务器资源,反而容易因为流量激增导致系统崩溃,这显然是不合理的。
那怎么办呢?——消息代理(Message Broker)。也就是说,当有激增的流量过来时,我们不着急处理,先把消息发到消息代理中去。消息代理可以缓存这些消息,而且它的容量可以理解为几乎是无限的。于是,大量的请求被暂时“拦住”了,就像一个大坝把洪水拦在后面。拦住之后怎么办?后端的各个微服务可以根据自身的处理能力,慢慢地从消息队列中取消息来处理。无论前端流量多高、多猛,都先进入队列,后续再按照系统的节奏逐步消费。这样一来,就相当于把“峰值流量”分