摘要:需要完成功能 借助redis Stream 数据结构实现消息队列,异步完成订单创建,其中涉及到了缓存(击穿,穿透,雪崩),锁(Redisson),并发处理,异步处理,Lua脚本 IDE:IDEA 2022 1、读取库存数据 【Lua】 2、判断库存 【Lua】 3、扣减库存 【Lua】 4、创建队列
阅读全文
摘要://异步阻塞队列变量 private BlockingQueue<VoucherOrder> orderTasks=new ArrayBlockingQueue<>(1024*1024); //create the thread pool signal thread private static f
阅读全文
摘要:public static final DefaultRedisScript<Long> SECKILL_SCRIPT; static { SECKILL_SCRIPT= new DefaultRedisScript<>(); SECKILL_SCRIPT.setLocation(new Class
阅读全文
摘要:同步:实时同步全过程,连续做几件事,从头到尾不管用多少时间,最后得到一个结果 (单人做战) 异步:异步状态跟踪,对于耗时较久的工作可以让别人去做(或者自己有时间再做),自己不关注过程,有结果通知自己就好 (多人做战) 阻塞:堵门,自己要的鸡蛋灌饼还没有做好,我就堵门等,后面人买烧饼(虽然有现货)对不
阅读全文
摘要:事务简介 事务在逻辑上是一组操作,要么执行,要不都不执行。主要是针对数据库而言的,比如说 MySQL。为了保证事务是正确可靠的,在数据库进行写入或者更新操作时,就必须得表现出 ACID 的 4 个重要特性: 原子性(Atomicity):一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在
阅读全文
摘要:搞明白监听器、过滤器、拦截器的作用和使用方式,首先需要了解spring对于这三个的加载时机是在怎么样的,如下图: spring对于这三者依次是先执行过滤器(多个过滤器采用责任链模式依次调用执行),紧接着是监听器,最后才是拦截器。 而这三者的作用: 过滤器(Filter):当你有一堆东西的时候,你只希
阅读全文
摘要:一、ThreadLocal简介ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 ThreadL
阅读全文
摘要:服务提供者应用 两个模块 (prot:8021,8021) pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.
阅读全文
摘要:官网: https://spring.io/ 更多spring cloud zookeeper 参考 https://docs.spring.io/spring-cloud-zookeeper/docs/current/reference/html 左侧菜单 向下找到 spring Cloud Zo
阅读全文
摘要:解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)问题 需要检查的步骤: 1.是否mapper.java文件上使用了注解@Mapper 或者 在启动类上扫描了Mapper类 @Mapper
阅读全文
摘要:SpringCloud 消费请求Eureka调用服务提供者报错 springCloud 2022.0.1 springboot 3.0.2 消费程序 通过eureka集群查询服务,根据eureka中注册的服务名称请求最终的服务, //eureka 注册的服务名称, public static fin
阅读全文
摘要:@EnableDiscoveryClient和@EnableEurekaClient 将一个微服务注册到Eureka Server(或其他服务发现组件,例如Zookeeper、Consul等)的步骤 1、添加客户端依赖 2、写注解 注意 现在可省略了 :在启动类上添加注解@EnableDiscove
阅读全文
摘要:RestTemplate的超全讲解(全)转 https://blog.csdn.net/weixin_47872288/article/details/121842374 (81条消息) RestTemplate的超全讲解(全)_码农研究僧的博客-CSDN博客_resttemplate 视频地址:
阅读全文
摘要:@RequestMapping @RequestParam @RequestBody @PathVariable与@RequestParam的区别 1) 相同点A. 作用位置相同:都是直接修饰方法参数变量;B. 功能相似:都是将URL中的变量值映射到方法参数上;C. 都具有value属性:将URL变
阅读全文
摘要:spring boot 3.0 已经自己集成了日志功能 logback SpringBoot 启动时自动加载配置文件,配置文件的默认名称为: logback.xml 或 logback-test.xml 其它的文件需要配置yal logging: config: classpath:logback-
阅读全文
摘要:Spring6基于XML实现Bean 管理(属性赋值) IOC和DI有什么区别:DI是IOC中的具体实现,DI表示依赖注入或注入属性,注入属性要在创建对象的基础之上完成 依赖注入方法 bean属性赋值方法只有一种:构造器注入(之所以这么说是为了便于记忆),我们知道构造器有两种: 无参构造,有参构造。
阅读全文