guava cache过期方案实践

2021-12-06
阅读 9 分钟
10.4k
expireAfterAccess: 数据在指定时间内没有被访问(读或写),则为过期数据,当没有数据或者读到过期数据时,只允许一个线程更新新数据时,其他线程阻塞等待该线程更新完成后,取最新的数据。

Mybatis-Plus结合lambda表达式获取entity的数据库字段名

2021-03-17
阅读 13 分钟
16.9k
这种在代码里硬编码数据库字段名,给人感觉非常的不规范,那是否可以像lambdaQuery那样,不硬编码也可以获取到数据库字段名呢?类似这样子:

redis分布式锁自动延长过期时间

2020-10-19
阅读 6 分钟
14.7k
项目组已经有个分布式锁注解(参考前文《记一次分布式锁注解化》),但是在设置锁过期时间时,需要去预估业务耗时时间,如果锁的过期时间能根据业务运行时间自动调整,那使用的就更方便了。

Spring循环依赖三级缓存是否可以去掉第三级缓存?

2020-08-16
阅读 10 分钟
26.4k
都知道Spring通过三级缓存来解决循环依赖的问题。但是是不是必须三级缓存才能解决,二级缓存不能解决吗?很多篇文章都说第二级缓存不能去掉,是因为创建代理时要用到,那第三级缓存可以去掉吗?要分析是不是可以去掉,就先过一遍Spring是如何通过三级缓存来解决循环依赖的。

简易实现kafka延迟消息

2020-04-19
阅读 5 分钟
26.8k
当前业务存在以下场景:在一个事务内的最后一步是发送kafka消息,消费端收到通知后读取数据并做处理。但是由于kafka几乎是即时收到消息,导致偶尔出现“在发完kafka和提交事务的间隙,消费端收到了消息并读取到了事务提交前的数据”。这个问题可以通过延迟消息来解决。