- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 记一次redisson分布式锁困扰问题
抛出错误异常:attempt to unlock lock, not locked by current thread by node id根据意思大概就是:thread-1还没有结束的时候,也就是在thread-1在获得锁但是还没有释放锁的时候,thread-2由于尝试去释放一个属于线程thread-1的锁而抛出了一个运行时异常thread-1的线程作为了Key,thread-2无法获取该锁去执行了释放锁的操作猜想: 当同一个线程中去加锁和解锁,这个主要也是出于分布式锁安全设计,只有加锁.
2020-10-27 15:57:43
5546
2
原创 redisson锁相关源码
1、redisson加锁源码理解 redisson先获取RLock对象,调用lock、tryLock方法来完成加锁的功能 lock方法是直接加锁,如果锁已被占用,则直接线程阻塞,进行等待,直到锁被占用方释放。 tryLock方法则是设定了waitTime(等待时间),在这个等待时间没到前,也是线程阻塞并反复去获取锁,直到取到锁或等待时间超时,则返回false2、加锁 1、LOCK加锁/** * 加锁操作 (设置锁的有效时间) * @param lockName 锁名称
2020-10-27 15:30:02
394
原创 redisson锁相关接口API使用
1、API锁接口public interface RRLock { /** * 加锁 锁的有效期默认30秒 */ void lock(); /** * tryLock()方法是有返回值的,它表示用来尝试获取锁,如果获取成功,则返回true,如果获取失败(即锁已被其他线程获取),则返回false . */ boolean tryLock(); /** * tryLock(long time, Ti
2020-10-27 15:02:42
1942
原创 redisson如何配置参数
因为redisson是基于java的网络编程框架netty实现,所以首先提供了暴露了netty相关配置参数;redis服务端要么是单机要么是多机,那么这里必然存在主从相关设置;redisson作为客户端,如果频繁去创建和关闭连接,那么性能必然大幅下降,那么这里必然有连接池相关配置;考虑到安全相关,所以redis还需要有SSL相关设置;后面还有客户端操作失败重试相关设置参数和根据不同部署的特殊配置;1、netty相关:配置参数配置介绍单节点主从哨兵集群云..
2020-10-27 14:55:29
9629
1
原创 redisson的使用
1、Redisson工具类public class RedissonUtil { private RedissonManager redissonManager; private Redisson redisson; public RedissonUtil(RedissonManager redissonManager) { this.redissonManager = redissonManager; this.redisson = redisson
2020-10-27 14:52:48
1190
原创 redisson简单介绍
1、什么是redisson Redisson - 是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java的对象,Redisson、Jedis、Lettuce 是三个不同的操作 Redis 的客户端,Jedis、Lettuce 的 API 更侧重对 Reids 数据库的 CRUD(增删改查),而 Redisson API 侧重于分布式开发2、支持Redis多种连接模式 1、集群模式 Config config = new Config(); confi
2020-10-27 14:46:08
59128
原创 spring-retry使用以及源码
1、介绍spring retry是从spring batch独立出来的一个能功能,主要实现了重试和熔断,对于重试是有场景限制的,不是什么场景都适合重试, 比如参数校验不合法、写操作等(要考虑写是否幂等)都不适合重试。 比如外部 RPC 调用,或者数据入库等操作,如果一次操作失败,可以进行多次重试,提高调用成功的可能性。2、框架介绍3、概念类1、BackOff:补偿值,一般指失败后多久进行重试的延迟值。2、Sleeper:暂停应用的工具,通常用来应用补偿值。3、BackOffPolicy:
2020-10-09 11:59:12
1770
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人