background picture of the home page

mifuRD

山高路远,止不住行者征程。

微信:mifuCN | 电话:15761226890
最近在学习AI应用开发的相关知识(LangChain、Spring AI Alibaba等框架),先在个人博客中落地一些功能试试效果。顺便抽空看看《深入理解Java虚拟机》。

分布式锁starter+自定义注解

分布式锁starter+自定义注解 项目在多个微服务中都需要进行幂等操作,我们把锁相关的操作封装在了分布式锁的组件中。这个分布式锁是基于Redisson+Redis+自定义注解+AOP 切面 首先在pom文件中引入相关依赖 <?xml version="1.0" encoding="UTF-8"?>

thumbnail of the cover of the post

滑动窗口限流器组件-自定义starter-基于Redisson

本文介绍了一款基于Redisson实现的滑动窗口限流器组件,它被封装为自定义Spring Boot starter,旨在简化高并发场景下的请求限流问题。该组件利用Redisson的`RRateLimiter`及Redis实现了高效的分布式限流,特别适用于微服务或分布式系统。其核心是通过提供一个简洁的`tryAcquire`方法,根据设定的时间窗口大小和请求数量上限来控制访问频率。文章通过展示核心代码、自动配置和单元测试,清晰阐述了其实现原理,并以短信验证码防刷作为实际应用场景,展示了其便捷性和实用性。 由米芾AI生成,内容仅供参考!

thumbnail of the cover of the post

自定义Spring Boot Starter

本文详细介绍了如何为SpringBoot 3创建自定义Starter以简化项目配置。核心步骤分为三步: 1. **定义属性类**:使用`@ConfigurationProperties`注解创建类,用于绑定和管理配置文件中的属性。 2. **实现自动配置**:创建带有`@Configuration`注解的配置类,在其中使用`@Bean`和条件注解(如`@ConditionalOnProperty`)来按需创建和装配服务实例。 3. **注册配置类**:这是SpringBoot 3的关键变化,需在`META-INF/spring/`目录下创建`org.springframework.boot.autoconfigure.AutoConfiguration.imports`文件,并写入自动配置类的全路径,以替代旧版本中已弃用的`spring.factories`方式。 通过以上步骤,即可将通用功能封装为可复用的Starter,在其他项目中通过引入依赖和简单配置便能快速集成。 ——由米芾AI生成,内容仅供参考!

thumbnail of the cover of the post

Dubbo统一远程调用包装工具

本文介绍了在高并发项目中对Dubbo远程调用进行封装的两种实用方法。第一种是创建`RemoteCallWrapper`工具类,它统一处理RPC调用方的逻辑,集成了耗时统计、请求响应日志、统一异常捕获及响应结果自动校验等功能,简化了调用代码。第二种是利用自定义`@Facade`注解和AOP切面,在RPC服务提供方实现通用功能,自动完成对入参的校验、统一的异常处理(将异常转换为标准失败响应)和格式化日志打印。这两种方法分别从调用方和服务提供方两个维度提升了RPC调用的健壮性和代码的可维护性。 由米芾AI生成,内容仅供参考!

thumbnail of the cover of the post

XtraBackup

Percona XtraBackup是一款专为MySQL和MariaDB设计的开源热备份工具。其核心优势是支持在线“热备份”,可在不中断数据库服务的情况下完成备份,不影响正常读写操作。它还支持增量备份,能显著减少备份时间和存储空间,并具备快速恢复、压缩备份和并行处理等高级功能。相比传统的mysqldump,XtraBackup在速度、对生产系统影响以及对大型数据库的支持上都更具优势,是企业级MySQL备份的行业标准工具之一。 由米芾AI生成,内容仅供参考!

thumbnail of the cover of the post