SpringBoot+Vue框架技术精讲与项目实战第8章SpringBoot消息服务SpringBoot+Vue框架技术精讲与项目实战第8章SpringBoot消息服务8.1消息服务概述8.2整合JMS8.3整合AMQP2SpringBoot+Vue框架技术精讲与项目实战8.1消息服务概述消息(Message)是指软件对象之间进行交互作用和通讯利用的一种方式。中间件(Middleware)是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。MQ全称MessageQueue(消息队列),是在消息的传输过程中保存消息的容器,多用于分布式系统之间进行通信。消息服务是将软件与软件之间的交互消息、交互方式进行存储和管理的一种技术。在多数应用尤其是分布式系统中,消息服务是不可或缺的重要部分,它使用起来比较简单,同时也解决了不少难题,例如异步处理、应用解耦、流量削峰、分布式事务管理等,使用消息服务可以实现一个高性能、高可用、高扩展的系统。3SpringBoot+Vue框架技术精讲与项目实战8.1消息服务概述下面使用实际开发中的若干场景来分析和说明为什么要使用消息服务,以及使用消息服务的好处。1.异步处理应用场景说明:用户注册后,系统需要将信息写入数据库,并发送注册邮件和注册短息通知,下面来讲解不同的处理方式,如何来处理注册业务需求。(1)串行处理方式(2)并行处理方式(3)消息服务处理方式4SpringBoot+Vue框架技术精讲与项目实战8.1消息服务概述2.应用解耦应用场景说明:订单系统库存系统,用户下单后,订单服务需要通知库存服务。如果采用传统方式处理订单业务,下单后,订单服务会直接调用库存服务接口进行库存更新,如图8-4所示。传统方式应用解耦一旦库存系统出现异常,订单服务会失败导致订单丢失。如果使用消息服务模式应用解耦,订单服务的下单会快速写入消息队列,库存服务会监听并读取到订单,从而修改库存,如图8-5所示。相较于传统方式,消息服务模式显得更加高效、可靠。5SpringBoot+Vue框架技术精讲与项目实战8.1消息服务概述3.流量削峰应用场景说明:在大型购物节时,购物网站开展秒杀活动,是流量削峰的一种应用场景。秒杀活动一般由于瞬时访问量过大,服务器接收过大,会导致流量暴增,相关系统无法处理请求甚至崩溃。为了解决这个问题,通常会采用消息队列缓冲瞬时高峰流量,系统可以从消息队列中读取数据,对请求进行分层过滤,从而过滤掉一些请求,如图8-6所示。6SpringBoot+Vue框架技术精讲与项目实战8.1消息服务概述4.分布式事务管理应用场景说明:在分...