摘要: Apache-Curator 如上借助于临时顺序节点,可以避免同时多个节点的并发竞争锁,缓解了服务端压力。这种实现方式所有加锁请求都进行排队加锁,是公平锁的具体实现。Apache-Curator中提供的常见锁有如下: InterProcessMutex:就是公平锁的实现。可重入、独占锁 InterP 阅读全文
posted @ 2021-07-25 10:21 柠檬夕 阅读(61) 评论(0) 推荐(0)
摘要: 1 LUA+SETNX+EXPIRE 先用setnx来抢锁,如果抢到之后,再用expire给锁设置一个过期时间,防止锁忘记了释放。 setnx(key, value) setnx 的含义就是 SET if Not Exists,该方法是原子的。如果 key 不存在,则设置当前 key 为 value 阅读全文
posted @ 2021-07-25 10:20 柠檬夕 阅读(311) 评论(0) 推荐(0)
摘要: 1 基于唯一索引(insert)实现 记录锁的乐观锁方案。基于数据库的实现方式的核心思想是:在数据库中创建一个表,表中包含方法名等字段,并在方法名字段上创建唯一索引,想要执行某个方法,就使用这个方法名向表中插入数据,成功插入则获取锁,执行完成后删除对应的行数据释放锁。 1.1 优缺点 优点 实现简单 阅读全文
posted @ 2021-07-25 10:19 柠檬夕 阅读(174) 评论(0) 推荐(0)
摘要: 熔断机制是应对雪崩效应的一种微服务链路保护机制。当链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。服务断路器的设计架构图如下: 1 断路器状态 服务调用方为每一个调用服务 (调用路径 阅读全文
posted @ 2021-07-24 09:17 柠檬夕 阅读(216) 评论(0) 推荐(0)