- 博客(11)
- 收藏
- 关注
原创 Spring定时任务
方案一:基于@Scheduled注解的定时任务,修改定时规则需要修改代码,修改后需要重启项目。方案五:使用ScheduledThreadPoolExecutor定时任务线程池执行定时任务。方案三:动态定时任务,在数据库中查询定时规则,可以随时改变定时任务的执行规则。方案二:基于@EnableAsync的多线程定时任务。方案四:基于线程池的多线程定时任务。
2024-05-24 10:38:37
154
原创 SpringBoot 整合 Redis
5. 定制化 LettuceConnectionFactory。3. 定制化redisTemplate。4. 定制化缓存管理。
2024-05-23 11:06:16
237
1
原创 分布式作业: Elastic-Job
如果有3台服务器,分成2片,作业名称的哈希值为奇数,则每台服务器分到的分片是:1=[0], 2=[1], 3=[] 如果有3台服务器,分成2片,作业名称的哈希值为偶数,则每台服务器分到的分片是:3=[0], 2=[1], 1=[]每一个分片只执行一次;如果有3台服务器,分成10片,则每台服务器分到的分片是:1=[0,1,2,9], 2=[3,4,5], 3=[6,7,8]如果有3台服务器,分成9片,则每台服务器分到的分片是:1=[0,1,2], 2=[3,4,5], 3=[6,7,8]
2024-05-21 21:13:09
878
1
原创 数据库分库分表策略
(3)将机器通过hash算法映射到环上 在采用一致性哈希算法的分布式集群中将新的机器加入,其原理是通过使用与对象存储一样的Hash算法将机器也映射到环中 (一般情况下对机器的hash计算是采用机器的IP或者机器唯一的别名作为输入值),然后以顺时针的方向计算,将所有对象存储到离自己最近的机器中。通过对节点的添加和删除的分析,一致性哈希算法在保持了单调性的同时,还是数据的迁移达到了最小,这样的算法对分布式集群来说是非常合适的,避免了大量数据迁移,减小了服务器的的压力。,不然就会出现“查无此人”的错误了。
2024-05-21 18:50:36
1114
1
原创 Mapstruct 实体属性映射框架
/定义UserEntity实体和UserPo两个实体@Data@Data@Builder(2)定义转换接口定义mapstruct接口,在接口上打上@Mapper注解属性表示交给Spring去管理,会在自动生成的实现类上加上@Component注解注意:@Mapper是Mapstruct的注解,不要引错了如果现有的能力都不能满足需要,可以自定义一个转换器,比如我们需要把一个字符串使用JSON工具转换成对象。
2024-05-21 18:21:22
775
1
原创 Mysql + MyBatis 多数据源配置
在config -> db 目录下创建第二数据源:在mapper -> second 目录下的所有mapper都走这个数据源。在config -> db 目录下创建第二数据源:在mapper -> first 目录下的所有mapper都走这个数据源。
2024-05-19 18:58:55
119
原创 AOP中ProceedingJoinPoint用法
它代表了方法调用的“执行点”,通常在方法调用之前或之后插入额外的逻辑。提供了对方法调用的控制,允许你决定是否继续执行原始方法、如何执行或完全不执行。描述:获取连接点的类型(例如,它是一个方法连接点还是一个构造函数连接点)。用途:你可以获取原始方法的参数,这在需要对参数进行操作或修改时非常有用。用途:在某些情况下,你可能需要访问代理对象本身,而不是其中的方法。描述:这些方法提供关于连接点在源代码中的位置的信息。描述:获取方法的签名(例如,方法名和参数类型)。示例:你可能想在方法调用之前修改某些参数的值。
2024-05-19 18:43:02
493
原创 本地缓存Caffeine
Caffine 是一款高性能的近似LFU(最近最少频率使用)准入策略的本地缓存组件,Caffeine的底层数据存储采用ConcurrentHashMap,使用 Window TinyLfu 回收策略,提供了一个近乎最佳的命中率。适用范围:变更频率低、实时性要求低的数据之前的 removalListener 是异步监听,此处的 writer 方法可以设置同步监听器,同步监听器一个实现了接口 CacheWriter 的实例化对象,我们需要自定义接口的实现类。
2024-05-19 18:37:26
1624
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人