草庐IT

微服务 Spring Boot 整合Redis分布式锁 Lua脚本 实现优惠卷秒杀 一人一单

文章目录⛅前言一、使用Redis分布式锁存在的问题⛄Redis分布式锁误删问题⚡分布式锁的原子性问题二、什么是Lua?三、使用Redis调用Lua脚本四、Java调用Lua脚本实现分布式锁五、测试⛵小结⛅前言在微服务SpringBoot整合Redis分布式锁实现优惠卷秒杀一人一单中,依旧会出现问题,这个问题是由于在高并发下,假设某个线程的锁等待时间过长,导致这个锁自动释放,那么此时其它线程进来就会重新获取锁,在该线程执行过程中,突然之前阻塞的锁反应了过来,转手删了这把锁,那么此时就造成了误删问题。下面我们继续来解决该问题解决方案:在每个线程释放锁的时候,判断一下是不是自己的,如果是,才走删除逻

Spring Boot 配置文件总结

前言SpringBoot中提供一个全局的配置文件:application.properties,这个配置文件的作用就是,允许我们通过这个配置文件去修改SpringBoot自动配置的默认值。SpringBoot支持两种格式的配置文件:application.properties和application.yml。yml等同于yaml,写法看个人喜欢,我喜欢写成application.yml不同后缀不同写法application.properties和application.yml,它们的区别在于语法不同,但本质上是一样的。application.properties使用键值对的方式来配置,而app

java - 在 Spring Boot 中使用 Tomcat 启用 HTTP2

Tomcat8.5,将是SpringBoot1.4中的默认设置,支持HTTP/2。如何在SpringBoot应用程序中启用HTTP/2? 最佳答案 在SpringBoot2.1andabove只需将此属性添加到您的.properties(或.yml)文件中即可:server.http2.enabled=true您也可以像这样以编程方式执行此操作(在您的配置类之一中):@BeanpublicConfigurableServletWebServerFactorytomcatCustomizer(){TomcatServletWebSer

java - 在 Spring Boot 中使用 Tomcat 启用 HTTP2

Tomcat8.5,将是SpringBoot1.4中的默认设置,支持HTTP/2。如何在SpringBoot应用程序中启用HTTP/2? 最佳答案 在SpringBoot2.1andabove只需将此属性添加到您的.properties(或.yml)文件中即可:server.http2.enabled=true您也可以像这样以编程方式执行此操作(在您的配置类之一中):@BeanpublicConfigurableServletWebServerFactorytomcatCustomizer(){TomcatServletWebSer

jeecg-boot首页加载速度优化全过程

优化结果前端和后端部署在轻量服务器:以下结果都是三次强刷得到的优化前:优化后:优化方案开启Nginx压缩方案来自于:jeecg官方文档作用:通过nginx内置的压缩策略来压缩静态资源,提升资源请求速度在nginx.conf的http中加入以下片断:#gzipconfiggzipon;#开启压缩gzip_min_length1k;#低于1k的不压缩gzip_comp_level9;#压缩程度gzip_typestext/plainapplication/javascriptapplication/x-javascripttext/cssapplication/xmltext/javascript

spring boot 整合vue,支持 element-ui , 开发工具: IDEA

前提需安装Node.js,并配置好环境变量,不会配置的可以百度,也可以看腾讯云的这篇文章:【Node.js】Node.js安装及环境配置-腾讯云开发者社区-腾讯云(tencent.com)然后在IDEA中的自带Terminal里,运行脚本以验证是否安装成功;也可以用快捷键WIN+R弹出运行框,然后输入cmd,以打开cmd终端命令;我们在cmd或者IDEA终端Terminal中.分别输入  node-v 和  npm-v ,如果出现了相应的版本号,那么恭喜你安装成功,如果过没成功,请自行百度,查找原因!!!1.在Terminal中输入:npminstall-gcnpm--registry=htt

java - 如何测试 Spring-boot 应用程序的主类

我有一个spring-boot应用程序,其中我的@SpringBootApplication入门类看起来像一个标准类。所以我为我的所有功能创建了许多测试并将摘要发送到sonarqube看看我的报道。对于我的初学者类(class),Sonarqube告诉我,我只有60%的覆盖率。所以平均覆盖率不如预期。我的测试类只是默认类。@RunWith(SpringRunner.class)@SpringBootTest(classes=ElectronicGiftcardServiceApplication.class)publicclassElectronicGiftcardServiceApp

java - 如何测试 Spring-boot 应用程序的主类

我有一个spring-boot应用程序,其中我的@SpringBootApplication入门类看起来像一个标准类。所以我为我的所有功能创建了许多测试并将摘要发送到sonarqube看看我的报道。对于我的初学者类(class),Sonarqube告诉我,我只有60%的覆盖率。所以平均覆盖率不如预期。我的测试类只是默认类。@RunWith(SpringRunner.class)@SpringBootTest(classes=ElectronicGiftcardServiceApplication.class)publicclassElectronicGiftcardServiceApp

Spring Boot实现文件上传的两种方式

最近的一个小项目里使用到了文件上传、下载功能,今天我打算梳理一下文件上传所涉及的技术及实现。内容主要包括两部分,如何通过纯Servlet的形式进行文件上传、保存(不通过Spring框架);另一部分是如何在SpringWebMVC中进行文件上传。01-从HTTP协议角度分析文件上传HTTP协议传输文件一般都遵循RFC1867规范,即客户端通过POST请求,Context-Type为"multipart/form-data"。前端提交页面一般为:Chooseafile:通过Wireshark对POST请求进行抓包,发现发送的请求格式为:POST/uploadHTTP/1.1Host:localho

java - Spring Boot 中 MultipartFile 的最大限制

在MultipartFile上传过程中是否存在SpringBoot可以处理的最大文件大小。我知道我可以在multipart.maxFileSize=1Mb之类的属性中设置maxFileSize。那么,我可以像这样允许上传一个大文件,比如50MB。该应用程序运行在与SpringBoot集成的Tomcat服务器上。我还需要配置tomcat服务器吗?还是文件大小无限? 最佳答案 对于那些使用SpringBoot2.0(截至M1版本)的用户,属性名称已更改为:spring.servlet.multipart.max-file-size=10