首页 > 其他分享 >springboot高级——消息队列相关

springboot高级——消息队列相关

时间:2022-10-09 20:05:38浏览次数:52  
标签:异步 10000 springboot 交换器 队列 高级 消息


写在前边:本文学习尚硅谷的springboot高级整理笔记。

消息队列是什么,有什么好处?

springboot高级——消息队列相关_异步处理

通过异步处理提高系统性能和削峰降低系统耦合性。目前使用较多的消息队ActiveMQ,RabbitMQ,Kafka,RocketMQ,我们后面会一一对比这些消息队列。

第一个场景:异步处理

springboot高级——消息队列相关_消息队列_02

 异步处理的好处是:缩短了反馈的时间。

第二个场景:应用解耦

springboot高级——消息队列相关_消息队列_03

 关于解耦我就不赘述重要性了。

第三个场景:流量削峰

springboot高级——消息队列相关_解耦_04

   比方说一个秒杀需求,一用有10000件商品,如果每笔秒杀订单,都去访问一次数据库,查一查库存,那得花费多长时间啊。

我们可以这样做,用一个消息队列,定制它的长度为10000,10000以内可以存到消息队列,一万10000以后不再近消息队列。

10000以内立马反馈一个秒杀成功。之后再去做减库存等一系列操作。

 

 消息处理的几种方式

  • 点对点式:

 生产者生产消息,存到消息队列中去,消费者去消息队列里边消费。消费一条消息,就从消息队列移除一条消息,从而保证不重复消费信息。

  • 发布订阅式:

  发送者发送一个消息主题,消费者以订阅的形式同时收到消息。

两种规范

springboot高级——消息队列相关_异步处理_05

两种规范的对比:

springboot高级——消息队列相关_消息队列_06

springboot对消息队列的支持

springboot高级——消息队列相关_消息队列_07

RabbitMQ小入门

springboot高级——消息队列相关_消息队列_08

springboot高级——消息队列相关_异步处理_09

springboot高级——消息队列相关_消息队列_10

  消息队列里边的交换器就像我们网络中的路由器一样。根据消息的路由键来确定去哪个消息队列。

 我自己制作了一张图

springboot高级——消息队列相关_消息队列_11

 老师的一张图

springboot高级——消息队列相关_消息队列_12

rabbitMQ的运行机制

springboot高级——消息队列相关_异步处理_13

rabbitMQ的交换器exchange类型

springboot高级——消息队列相关_解耦_14

springboot高级——消息队列相关_异步处理_15

 

 

 

标签:异步,10000,springboot,交换器,队列,高级,消息
From: https://blog.51cto.com/u_15812686/5741233

相关文章

  • 【SpringBoot】解决redis 查找/删除缓存失败问题
     使用StringRedisTemplate.delete(key) 删除缓存数据失败,原因是序列化问题导致。 需要把key和hash都使用String的序列化方式 解决方法:创建一个新的配置类:@Con......
  • 【Java高级】程序、进程和线程
    1.程序一段静态的代码(未启动的APP),可以完成特定任务。2.进程正在运行的程序(挂在后台的APP),系统给进程分配了内存。3.线程程序内部的一条执行路径(比如QQ中执行聊天功能,发......
  • 【Java高级】并行与并发
    1.单核与多核CPU(1)单核:一个人(2)多核:多个人人与人之间有力量的大小区分,核心也可分为大核、小核。多个人一起搬砖需要指挥配合->对多核的优化。2.串行排队一个一个来......
  • springboot——数据访问——JPA
      在有了springdata以后,给我们提供好了访问数据的解决方案。 如果之前使用过hibernate,你肯定也好奇,hibernate里边有级联操作。你可能跟我一样关心springboot 如何去做级......
  • springboot——数据访问——Druid&配置数据源监控
     在开发中会用Druid,因为它有成套的数据源监控想要使用需要做以下的操作: 在pom文件中引入依赖在application.yml里边添加配置想要在yml里边配置更多,则需要: 但是这并不能起......
  • springboot——数据访问——整合mybatis
    springboot没有直接提供和mybatis对接的stater,但是mybatis自己提供了整合的。想要在springboot中使用mybatis还是方便的。步骤:可以在创建项目的时候就直接勾选住依赖,也可以......
  • Springboot整合RestTemplate发送http请求
    据技术选型总结常见的三种方式发送http请求,本文介绍Springboot整合RestTemplate发送http请求方式,其他两种如下链接java原生发送http请求_程序三两行的博客HttpClient和OkHtt......
  • Springboot如何发送邮件
    邮件发送过程简介依赖 配置文件可以配置的属性值例如[email protected]=123456#授权码spring.mail.host=smtp.qq.com#smtp地址spring......
  • 从SpringBoot启动,阅读源码设计
    服务启动堪称Spring源码设计的答案;一、背景说明初学SpringBoot框架时,第一次启动服务,直呼什么鬼?只需要简单的几步配置,几个核心的注解,就可以快速实现工程的搭建和运行;虽......
  • SpringBoot启动配置原理
    https://cloud.tencent.com/developer/article/1802822?from=article.detail.1449134#SpringBoot启动配置原理几个重要的事件回调机制配置在META-INF/spring.factori......