自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 10 个优化技巧,减少 Docker 镜像大小

Docker 是一种容器引擎,可以在容器内运行一段代码。Docker 镜像是在任何地方运行您的应用程序而无需担心应用程序依赖性的方式。要构建镜像,docker 使用一个名为 Dockerfile 的文件。Dockerfile 是一个包含许多指令(RUN、COPY、EXPOSE 等)的文件。成功执行这些命令后,docker 将创建一个镜像供我们在任何地方使用。

2024-01-20 16:23:13 816

原创 面试官:宕机了,Redis 如何避免数据丢失?

如果有人问你:“你会把 Redis 用在什么业务场景下?我想你大概率会说:“我会把它当作缓存使用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应速度会非常快。没错,这确实是 Redis 的一个普遍使用场景,但是,这里也有一个绝对不能忽略的问题:「一旦服务器宕机,内存中的数据将全部丢失」。目前,Redis 的持久化主要有两大机制,即 「AOF(Append Only File)日志和 RDB(Redis DataBase) 快照」。

2024-01-17 16:08:10 843

原创 谈谈Spring中Bean的生命周期?(让你瞬间通透~)

Spring中Bean的生命周期就是Bean在Spring中从创建到销毁的整个过程。实例化设置属性:进行Bean的注入和装配初始化使用Bean销毁Bean这五步构成,并且任何顺序都不可以随意调换。Bean的执行流程属于常见面试题,一定要在理解的基础上牢记!

2024-01-05 17:43:34 919

原创 Spring Event 别瞎用!从我司的悲剧中,我总结了6 条最佳实践

今天我们重点聊聊使用 Spring Event 最为关键的几个问题。这是我司线上生产环境实际踩坑后,总结的极为宝贵的经验!Spring Event框架实现了基于事件的发布订阅机制。开发者可以自定义事件,在某些业务场景发布事件,Spring 会将该事件广播给监听该事件的监听者。监听者可以实现Spring 的监听者接口 ApplicationListener注册自己,也可以使用 EventListener注解注册自己。

2024-01-05 17:13:51 885

原创 如何在SpringBoot中优雅地重试调用第三方API?

Spring Retry是Spring框架提供的一个模块,它通过提供注解或编程方式的方式,帮助我们实现方法级别的重试机制。在Spring Boot中,可以很方便地集成并使用Spring Retry。在Spring Boot项目中,通过集成Spring Retry模块,我们可以优雅地实现对第三方API调用的重试机制。通过@Retryable注解,我们能够很方便地在方法级别上添加重试策略。同时,异步方法和异常类型的支持使得我们能够更灵活地应对不同的业务场景。

2024-01-05 14:40:50 1075

原创 SpringBoot 中实现订单30分钟自动取消的策略

在电商和其他涉及到在线支付的应用中,通常需要实现一个功能:如果用户在生成订单后的一定时间内未完成支付,系统将自动取消该订单。本文将详细介绍基于Spring Boot框架实现订单30分钟内未支付自动取消的几种方案,并提供实例代码。方案一:定时任务利用Spring Boot中的@Scheduled注解,我们可以轻松地实现定时任务。该任务将周期性地扫描数据库,检查未支付的订单,如果订单生成30分钟未支付,则自动取消。方案二:延迟队列。

2024-01-05 14:23:22 991

原创 阿里面试:redis 为什么把简单的字符串设计成 SDS?

空间预分配策略用于优化SDS字符串增长操作,当修改字符串并需对SDS的空间进行扩展时,不仅会为SDS分配修改所必要的空间,还会为SDS分配额外的未使用空间free,下次再修改就先检查未使用空间free是否满足,满足则不用在扩展空间。而我们开发中使用redis,往往会经常性的修改字符串的值,这个时候就会用SDS来表示字符串的值了。这时候键值对的键和上边一样,还是一个由SDS实现的字符串对象,键值对的值是一个包含两个字符串对象的列表对象了,而这两个对象的底层也是由SDS实现。

2024-01-04 19:39:12 1138 1

原创 面试官:Spring在多线程环境下如何确保事务一致性

如果我希望将步骤1和步骤2并行执行,然后确保步骤1和步骤2执行成功后,再执行步骤3,等到步骤3执行完毕后,再提交全部事务,这个需求该如何实现呢?

2023-08-31 14:50:29 112

原创 优化重复冗余代码的8种方式!

使用 AOP框架可以在不同地方插入通用的逻辑,从而减少代码重复。业务场景:假设你正在开发一个Web应用程序,需要对不同的Controller方法进行权限检查。每个Controller方法都需要进行类似的权限验证,但是重复的代码会导致代码的冗余和维护困难。if (!if (!就这样,不管多少个Controller方法需要进行权限检查,你只需在方法上添加相应的注解即可。

2023-08-22 14:50:59 74

原创 Java 8 中的 CompletableFuture 太好用了!20 个示例全分享

这篇文章介绍 Java 8 的 CompletionStage API 和它的标准库的实现 CompletableFuture。API通过例子的方式演示了它的行为,每个例子演示一到两个行为。既然CompletableFuture类实现了CompletionStage接口,首先我们需要理解这个接口的契约。它代表了一个特定的计算的阶段,可以同步或者异步的被完成。

2023-08-18 15:30:15 118

原创 面试官:一个 SpringBoot 项目能处理多少请求?(小心有坑)

这篇文章是基于“一个 SpringBoot 项目能同时处理多少请求?”这个面试题出发的。但是经过我们前面简单的分析,你也知道,这个问题如果在没有加一些特定的前提条件的情况下,答案是各不一样的。比如我再给你举一个例子,还是我们的 Demo,只是使用一下 @Async 注解,其他什么都不变:再次启动项目,发起访问,日志输出变成了这样:同时能处理的请求,直接从 Tomcat 的默认 200 个变成了 8 个?因为 @Async 注解对应的线程池,默认的核心线程数是 8。

2023-08-17 10:47:32 62

原创 线程数突增!领导:谁再这么写就滚蛋!

如果只是在局部方法中使用线程池,线程池对象不是 bean 的情况时,记得要合理的使用shutdown或者shutdownnow方法来释放线程和线程池对象,如果不使用,会造成线程池和线程对象的堆积。

2023-08-04 19:59:07 28

原创 面试官:说一下SSO 单点登录和 OAuth2.0 的区别

授权码(authorization code)方式,指的是第三方应用先申请一个授权码,然后再用该码获取令牌。这种方式是最常用的流程,安全性也最高,它适用于那些有后端的 Web 应用。授权码通过前端传送,令牌则是储存在后端,而且所有与资源服务器的通信都在后端完成。这样的前后端分离,可以避免令牌泄漏。

2023-08-03 10:45:01 52

原创 SpringBoot 快速实现 IP 地址解析

SpringBoot 快速实现 IP 地址解析

2023-08-03 09:49:08 60

原创 Lombok 造成的翻车事故,太坑了!

Lombok 造成的翻车事故,太坑了!

2023-08-01 23:12:14 73

原创 面试官:说一下 MyBatis 的 3 种分页方式?

面试官:说一下 MyBatis 的 3 种分页方式?

2023-07-27 11:33:16 39

原创 面试官:谈谈分布式系统中的补偿机制如何设计?

我们知道,应用系统在分布式的情况下,在通信时会有着一个显著的问题,即一个业务流程往往需要组合一组服务,且单单一次通信可能会经过 DNS 服务,网卡、交换机、路由器、负载均衡等设备,而这些服务于设备都不一定是一直稳定的,在数据传输的整个过程中,只要任意一个环节出错,都会导致问题的产生。这样的事情在微服务下就更为明显了,因为业务需要在一致性上的保证。也就是说,如果一个步骤失败了,要么不断重试保证所有的步骤都成功,要么回滚到以前的服务调用。

2023-07-27 10:36:01 708

原创 支付宝:多线程事务怎么回滚?@Transactional无用?

支付宝:多线程事务怎么回滚?@Transactional无用?

2023-07-25 14:28:17 49

原创 支付系统就该这么设计,稳的一批!!

支付系统就该这么设计,稳的一批!!

2023-07-24 09:51:00 92

原创 魔改xxl-job,彻底告别手动配置任务!

魔改xxl-job,彻底告别手动配置任务!

2023-07-22 11:24:56 93

原创 SpringBoot 整合 MinIO 实现视频的分片上传/断点续传(亲测可行)

SpringBoot 整合 MinIO 实现视频的分片上传/断点续传(亲测可行)

2023-07-22 10:53:37 361

原创 Spring 赌上未来的一击,响应式的 WebFlux 框架更优雅,性能更强!

spring-webflux是spring在5.0版本后提供的一套响应式编程风格的web开发框架,大量测评证明,使用WebFlux开发接口能够大幅提升接口的吞吐量。

2023-07-21 14:57:21 174

原创 有没有异步阻塞IO?

有没有异步阻塞IO?

2023-07-21 10:56:04 39

原创 SpringBoot 实现审核功能

SpringBoot 实现审核功能

2023-07-20 15:12:06 60

原创 数据脱敏?看我一行注解搞定!

本文主要分享什么是数据脱敏,如何优雅的在项目中运用一个注解实现数据脱敏,为项目进行赋能。希望能给你们带来帮助。

2023-07-20 14:13:39 104

原创 面试官:Java中Class.forName和ClassLoader到底有啥区别?

面试官:Java中Class.forName和ClassLoader到底有啥区别?

2023-07-20 10:25:41 40

原创 Spring 多线程异步上传图片、处理水印、缩略图!

Spring 多线程异步上传图片、处理水印、缩略图!

2023-07-19 17:06:23 123

原创 实现高并发秒杀的七种方式 !

解决商品超卖3.1 方式一(改进版加锁)3.2 方式二(AOP版加锁)3.3 方式三(悲观锁一)3.4 方式四(悲观锁二)3.5 方式五(乐观锁)3.6 方式六(阻塞队列)3.7.方式七(Disruptor队列)

2023-07-19 16:24:46 39

原创 SpringBoot实现扫码登录

最近有个项目涉及到 websocket 实现扫码登录,看到一篇不错的技术文,分享一下!

2023-07-19 15:51:59 31

原创 Nginx配置origin限制跨域请求

Nginx配置origin限制跨域请求

2023-06-26 10:05:06 519

原创 docker部署的nginx容器将请求修改为伪https协议

docker部署的nginx容器将请求修改为伪https协议

2023-06-12 11:54:36 107

原创 springboot项目打jar包报Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:3.1.2:jar

在springboot2.2.0.RELEASE版本的项目中想通过maven打jar包时,出现以下错误错误提示说我缺少maven-jar-plugin:3.1.2:jar包,可我在maven仓库中是有这个jar包的。而org/codehaus/plexus/components/io/resources/PlexusIoResourceCollection是在plexus-io.jar包中的。通过spring-boot-dependencies-2.2.0.RELEASE的pom文件中进入maven-

2023-03-10 13:55:16 1946

原创 Java8 使用 Files.list (),遇到的坑(未关闭流)

Java8 使用 Files.list ()的问题

2023-03-09 13:18:14 1061 1

原创 JFinal整合WebSocket做服务器向浏览器推送通知

记录一下使用jdk1.6版本采用JFinal整合WebSocket做消息推送JFinal版本3.3<dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal</artifactId> <version>3.3</version></dependency>AppConfig中@Overridepublic void c

2020-07-26 22:51:26 344

原创 RabbitMQ的通过Spring AMQP实现的五种消息模式

1.简单模式Spring AMQP实现首先需要在pom.xml中添加Spring AMQP的相关依赖;<!--Spring AMQP依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>然后修改appl.

2020-06-10 20:56:14 278

原创 Mybatis的分页插件xml配置

<plugins> <!-- com.github.pagehelper为PageHelper类所在包名 --> <plugin interceptor="com.github.pagehelper.PageHelper"> <!-- 4.0.0以后版本可以不设置该参数 --> <property name="dialect" value="mysql"/> <!-- 该参数默认

2020-05-18 00:16:12 438

原创 JQuery表单校验validate插件的常用校验规则

2020-05-17 13:44:45 145

原创 逆向工程的配置文件

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration> <con

2020-05-17 13:44:25 254

原创 Schema对XML的约束

例子一xsd文档<?xml version="1.0" encoding="UTF-8"?><!-- xmlns:xs 显示 schema 中用到的元素和数据类型来自命名空间 ><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"<!-- targetNamespace 显示被此 schema ...

2020-04-23 00:39:36 38

原创 Hibernate二级缓存以及查询缓存的配置步骤

     <defaultCachemaxElementsInMemory=“10000”  //在内存中存放的最大对象数eternal=“false”         //是否永久保存缓存,设置成falsetimeToIdleSeconds=“120”    timeToLiveSeconds=“120”    overflowToDisk=“true”     /...

2020-04-15 15:25:09 237 1

轨迹距离算法Trajectory Distance.pdf

主要介绍轨迹距离相关的算法公式即概念 适用于大数据算法工程师的学习

2023-01-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除