eureka 读写锁的一点思考

读写锁
读写锁一般实现
读读不互斥
读写互斥
写写互斥

读写锁的好处是,面对读多写多的场景会拥有比较好的表现
一般我们会在读操作加上读锁,写操作加上写锁。但是最近我发现eureka 在使用读写锁的时候是相反的,
也就是说在读操作加上了读锁,写操作的时候加上读锁

简单的分析
读操作使用读锁 ,写操作使用写锁
优点:适用于读多写少的场景

读操作使用写锁 ,写操作使用读锁
优点:适用于写多读少的场景

从这个角度上来说,作者应该是希望这个读写锁能匹配上读多写少的场景
这种场景我能想到的就是集群大规模上下线了

但是这与我们印象里注册中心读多写少不就向违背了么?虽然实现了高并发写入的需求,但是高并发读该怎么办呢

解决高并发读
eureka三级缓存,就是用来解决高并发读的情况
在这里插入图片描述
在更新注册表的时候,加上读锁,这样就允许大量集群的同时上线,此时对于客户端而言,其实是允许晚一点发现这些上线的集群
等到所有集群上线完成后,同时二级缓存过期这个时候,二级缓存就会从注册表中同步数据
通过这种牺牲段时间一致性的方案承载高并发读的需求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值