自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 微服务-分布式锁(三)-Zookeeper方案

Apache-Curator如上借助于临时顺序节点,可以避免同时多个节点的并发竞争锁,缓解了服务端压力。这种实现方式所有加锁请求都进行排队加锁,是公平锁的具体实现。Apache-Curator中提供的常见锁有如下:InterProcessMutex:就是公平锁的实现。可重入、独占锁InterProcessSemaphoreMutex:不可重入、独占锁InterProcessReadWriteLock:读写锁InterProcessSemaphoreV2:共享信号量InterProcessMu

2021-07-25 10:14:52 66

原创 微服务-分布式锁(二)-Redis方案

1 LUA+SETNX+EXPIRE先用setnx来抢锁,如果抢到之后,再用expire给锁设置一个过期时间,防止锁忘记了释放。setnx(key, value)setnx 的含义就是 SET if Not Exists,该方法是原子的。如果 key 不存在,则设置当前 key 为 value 成功,返回 1;如果当前 key 已经存在,则设置当前 key 失败,返回 0。expire(key, seconds)expire 设置过期时间,要注意的是 setnx 命令不能设置 key 的超

2021-07-25 10:11:50 173

原创 微服务-分布式锁(一)-MySQL方案

1 基于唯一索引(insert)实现记录锁的乐观锁方案。基于数据库的实现方式的核心思想是:在数据库中创建一个表,表中包含方法名等字段,并在方法名字段上创建唯一索引,想要执行某个方法,就使用这个方法名向表中插入数据,成功插入则获取锁,执行完成后删除对应的行数据释放锁。1.1 优缺点优点实现简单、易于理解缺点没有线程唤醒,获取失败就被丢掉了没有超时保护,一旦解锁操作失败,就会导致锁记录一直在数据库中,其他线程无法再获得到锁这把锁强依赖数据库的可用性,数据库是一个单点,一旦数据库挂掉,会导致

2021-07-25 10:05:39 170

原创 微服务 —— 断路器设计

熔断机制是应对雪崩效应的一种微服务链路保护机制。当链路的某个微服务出错不可用或者响应时间太长时,会进行服务的降级,进而熔断该节点微服务的调用,快速返回错误的响应信息。当检测到该节点微服务调用响应正常后,恢复调用链路。服务断路器的设计架构图如下:1 断路器状态服务调用方为每一个调用服务 (调用路径) 维护一个状态机,在这个状态机中有3种状态:CLOSED:默认状态。断路器观察到请求失败比例没有达到阈值,断路器认为被代理服务状态良好OPEN:断路器观察到请求失败比例已经达到阈值,断路器认为被代理服务

2021-07-24 08:19:24 181

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除