- 博客(25)
- 收藏
- 关注
原创 SpringBoot文件上传之秒传、断点续传、分片上传
比如,在线教育平台上的视频资源上传,社交平台上的图片分享,以及企业内部的知识文档管理等。这些场景对文件上传的要求也各不相同,有的追求速度,有的注重稳定性,还有的需要考虑文件大小和安全性。这对于大文件上传尤为重要,因为它可以有效防止因网络问题导致的上传失败,同时也能节约用户的流量和时间。分片上传关键是在前端对文件切片,比如一个 10MB 的文件切为 10 份,每份 1MB。每次上传的时候,需要多一个参数记录当前上传的文件切片的起始位置。如果文件不存在,则开始上传文件,上传文件和 MD5 校验请求类似。
2024-11-26 15:01:46
1208
1
原创 微服务Token鉴权设计的三种方案
但需要注意的是应该将Web项目的容器换成Undertow,因为Tomcat是阻塞式的容器,不换也不是不行,但吞吐量可能会少一下,Undertow是非阻塞式的容器,可以与Gateway到达相同的效果。根据需求积分服务提供了一个给用户添加积分的API,如果你的API是通过获取的当前登录用户ID增加的积分,那么面对场景二时你需要重新编写一个给用户添加积分的API,因为当前登录的是后台管理员而不是用户(代码复用率较低)各位服务都有自己的鉴权方式,当然也可以通过jar包的方式统一各服务的鉴权方式。
2024-07-25 17:36:04
685
原创 深入理解JVM的垃圾回收机制
Java堆中存放着几乎所有的对象实例,垃圾回收器在堆进行垃圾回收前,首先要判断这些对象那些还存活,那些已经“死去”。
2024-06-09 00:25:46
677
原创 Spring Boot 调用外部接口的 3 种方式
SpringBoot不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求, 比如在apaas开发过程中需要封装接口在接口中调用apaas提供的接口(像发起流程接口submit等等)下面也是提供了三种方式(不使用dubbo的方式)供我们选择.
2024-06-09 00:17:57
1753
原创 Spring Boot+Redis 分布式锁实现抢单
本篇内容主要讲解的是 redis 分布式锁,下面结合模拟抢单的场景来使用她;本篇不涉及到的 redis。
2024-05-11 00:36:16
794
1
原创 Nginx静态压缩和代码压缩,提高访问速度
基于目前大部分的应用,都使用了前后端分离的框架,vue的前端应用,也是十分的流行。不知道大家有无遇到这样的问题:随着前端框架的页面,功能开发不断的迭代;安装的依赖,不断的增多;这样导致的问题,就是我们的前端框架,会变得十分庞大,打包出来的dist目录会变得很大了这样就会导致一个问题:首次访问应用,会变得很慢!!!这确实是一个严重的问题!!!T_T对于这个问题,咋们今天就从代码压缩+nginx静态资源压缩,两个方面进行研究解决!!!
2024-04-11 23:40:11
782
2
原创 MySQL:表级锁、行级锁、共享锁、排他锁、乐观锁、悲观锁
当前线程对共享资源加排他锁,其他线程不允许读取此资源,不允许追加共享锁,不允许修改此资源,不允许追加排他锁。排他锁是独占的,不会与其他锁共存。又称之为X锁、写锁。
2024-04-11 23:20:13
352
1
原创 关于offset 和 limit 分页
本文主要去理解 offset 为什么会在大数据量下的查询带来性能问题?思考完后,可以在思考下,如果分库分表,你会这么去分页呢?不需要担心数据库性能优化问题的日子已经一去不复返了。随着时代的进步,随着野心勃勃的企业想要变成下一个 Facebook,随着为机器学习预测收集尽可能多数据的想法的出现。作为开发人员,我们要不断地打磨我们的 API,让它们提供可靠和有效的端点,从而毫不费力地浏览海量数据。
2024-04-07 11:29:50
838
原创 MySQL定时任务
at timestamp:用于一次性活动,指定事件仅在 timestamp 给出的日期和时间执行一次,时间戳必须同时包含日期和时间,或者必须是解析为日期时间值的表达式,如果日期已过,则会出现警告。创建事件或定时任务可以解决很多重复性工作,配合着动态 sql 和存储过程能起到实时更新数据功能,不需要人工干预,提高了工作效率,让我们有更多的时间学习和处理其它问题。Mysql 事件是一种在特定时间点自动执行的数据库操作,也可以称呼为定时任务,它可以自动执行更新数据、插入数据、删除数据等操作,无需人工干预。
2024-04-07 11:22:09
949
原创 MyBatis 流式查询
上面的代码中,1 处我们创建了一个 TransactionTemplate 对象(此处 transactionManager 是怎么来的不用多解释,本文假设读者对 Spring 数据库事务的使用比较熟悉了),2 处执行数据库事务,而数据库事务的内容则是调用 Mapper 对象的流式查询。上面的代码中,fooMapper 是 @Autowired 进来的。流式查询的过程当中,数据库连接是保持打开状态的,因此要注意的是:执行一个流式查询后,数据库访问框架就不负责关闭数据库连接了,需要应用在取完数据后自己关闭。
2024-03-31 22:10:46
1701
1
原创 Spring在多线程环境下如何确保事务一致性
一次事务的完成通常都是默认在当前线程内完成的,又因为一次事务的执行过程中,涉及到对当前数据库连接Connection的操作,因此为了避免将Connection在事务执行过程中来回传递,我们可以将Connextion绑定到当前事务执行线程对应的ThreadLocalMap内部,顺便还可以将一些其他属性也放入其中进行保存,在Spring中,负责保存这些ThreadLocal属性的实现类由TransactionSynchronizationManager承担。
2024-03-31 22:04:10
1132
2
原创 SpringBoot使用Mybatis-Plus中分页出现total=0的情况解决
【代码】SpringBoot使用Mybatis-Plus中分页出现total=0的情况解决。
2023-11-07 16:57:20
4224
原创 输入npm install 报错node-sass@4.13.0 postinstall:`node scripts/build.js` Failed at the node-sass@4.13.0
这个是因为sass安装时获取源的问题,修改sass安装的源,改为淘宝的源。再运行npm install就可以了。
2023-06-15 17:25:06
1285
原创 关于node.js的多版本管理器nvm的安装以及使用
下载nvm-setup.zip版本,解压之后安装一直无脑下一步就可以了,然后就打开Windows PowerShell选择以管理员运行。mvn use 你想切换的版本 :如。这里选择是就可以了,安装完成!我当前安装的版本是1.1.1。
2023-06-15 17:11:16
271
1
原创 在linux安装redis
修改默认密码(默认密码为无密码),查找 requirepass foobared 将 foobared 修改为你的密码(如:123456)
2023-05-14 16:02:04
175
原创 在CentOS 8安装宝塔页面
值得一提的是登录前需要查看端口号是否开放,然后就可以登录了。等待一端时间后安装完成,出现登录地址,登录账户和密码。
2023-05-14 15:14:55
851
原创 IRule爆红问题解决
IRule爆红是因为缺少了依赖,在pom文件的dependencyManagement里加上如下依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.RELE
2022-03-24 19:48:51
680
原创 在Linux下安装JDK
第一步:下载安装包下载Linux环境下的jdk1.8,到官网中下载jdk的安装文件,我下载的jdk版本为jdk-8u112-linux-x64.tar.gz;第二步、解压安装包将我们下载好的JDK安装包上传到服务器,进行解压进入到上传文件目录下使用命令:tar -zxvf jdk-8u112-linux-x64.tar.gz(jdk-8u112-linux-x64.tar.gz)为你的jdk文件名第三步、修改环境变量命令:vim /etc/profile用vim编辑器来编辑p
2022-03-22 19:07:39
603
原创 在linux下安装mysql
(1) 上传 MySQL 安装文件到 Linux使用 Xftp 上传文件 mysql-5.7.18-linux-glibc2.5-x86_64.tar(2) 检查系统是否安装了 mariadb 数据库检查linux是否安装了mariadb数据库, mariadb数据库是mysql的分支。是免费开源的。 mariadb和msyql会有冲突。首先要检查安装了mariadb, 卸载掉。检查命令:yum list installed | grep mariadb(3) 卸载 mariadb若li
2022-03-22 09:36:38
654
原创 启动spring-boot出现Error creating bean with name ‘configurationPropertiesBeans‘错误
当pom.xml中的spring-boot-starter-parent和spring-cloud-starter-netflix-eureka-server依赖的版本不一致是会发生以下错误:Error creating bean with name ‘configurationPropertiesBeans’ defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebi
2022-03-19 13:08:51
3002
原创 关于nginx用到的一些命令
Nginx的启动/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf(这里/opt/nginx为安装Nginx的目录,/opt/nginx/conf/nginx.conf为通过配置文件启动启动)Nginx的关闭优雅关闭:kill -QUIT 主pid(在进行的任务结束后再关闭)快速关闭:kill 主pid (粗暴快速关闭)重启Nginx./nginx -s reload将文件下载到Windows:sz +目录下的文件名
2022-03-06 16:53:08
3230
原创 redis连接失败的两个解决办法
redis连接大多数失败主要有两个原因修改下redis的配置文件,redis.conf,把 bind 127.0.0.1 注释掉,protected-mode yes 把yes改为no这些东西配置完成了之后,重启redis服务,再次连接的时候。配置完redis.conf文件之后如果还是连接失败很可能是启动redis-server并没有指定配置文件,而Linux上的redis如果你不指定配置文件去启动,那么你做的修改就没有用,会读取默认配置 ,进入redis的src目录下,执行命令: re
2022-03-03 21:28:27
11118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人