- 博客(0)
- 收藏
- 关注
redis事务回滚工具
github地址:https://github.com/SongTing0711/redis-transaction
博客地址:https://blog.csdn.net/m0_69270256/article/details/124164125?spm=1001.2014.3001.5502
基于SpringBoot的轻量级redis事务回滚机制,使用栈和ThreadLocal记录业务链的redis操作,发生异常进行回滚,参考了阿里巴巴Seata AT模式的db回滚策略:补偿回滚,记录前镜像与当前操作语句,反向解析生成补偿动作。
1、目前支持链接redis的工具主要是Redisson、RedisTemplate、StringRedisTemplate,默认Redisson
2、进行回滚时需要考虑是否要进行查询前镜像,可以通过设置RedisTransactionCommonUtil的QUERY_PREV属性
3、需要使用RedisTransactionCacheUtils操作需要回滚的redis数据,此时加入threadlocal
2023-05-24
基于redis的java分布式代理锁
分布式代理锁,动态的锁后缀采用ThreadLocal或者参数名获取 锁粒度自定义选择,目前实现基于redis,后续扩展zk等
SpringBoot,默认使用redisson链接redis,可以更改注解参数使用Spring redis工具
key分为:无后缀、参数中获取、使用ThreadLocal获取
代码地址:GitHub - SongTing0711/distributed-proxy-lock
博客地址:https://blog.csdn.net/m0_69270256/article/details/124927336?spm=1001.2014.3001.5502
2023-05-24
基于加权计数器限流算法的java计算限流工具
代码地址:https://github.com/SongTing0711/count-limit
博客地址:https://blog.csdn.net/m0_69270256/article/d
许多需求计算量都在扩大, 针对大容量、高并发的接口、mq或者其他计算方法,同一时间在运行的计算维度进行限制,相当于把资源到计算的对象维度。
不同于参数限制,工具针对的是服务所有线程对于该计算维度的限流。
与市面上开源的限流工具(如谷歌的RateLimiter令牌桶限流、京东HotKey的滑动窗口限流,更关注流量突发缓解,但是过去流量占用资源是否释放不被关注)不同点在于使用加权计数器限流算法,关注流量的处理结果
1、计算量的存储与并发控制主要分为redis和本地两种,目前支持链接redis的工具主要是redisson、spring redis
2、因此有七种使用方式,默认使用ReentrantLock加锁,本地map缓存
3、如果使用工具的地方很多,存储比较适合使用redis
4、如果限流的方法qps很高,使用redis进行加锁处理可能是比ReentrantLock更好的选择
2023-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人