读写锁
读写锁一般实现
读读不互斥
读写互斥
写写互斥
读写锁的好处是,面对读多写多的场景会拥有比较好的表现
一般我们会在读操作加上读锁,写操作加上写锁。但是最近我发现eureka 在使用读写锁的时候是相反的,
也就是说在读操作加上了读锁,写操作的时候加上读锁
简单的分析
读操作使用读锁 ,写操作使用写锁
优点:适用于读多写少的场景
缺点:无法适用于读多写多或者写多多
读操作使用写锁 ,写操作使用读锁
优点:适用于读多写少的场景
缺点:无法适用于读多写多或者写多多
从这个角度上来说,作者应该是希望这个读写锁能匹配上读多写少的场景
这种场景我能想到的就是集群大规模上下线了
但是这与我们印象里注册中心读多写少不就向违背了么?虽然实现了高并发写入的需求,但是高并发读该怎么办呢
解决高并发读
eureka三级缓存,就是用来解决高并发读的情况
通过这种牺牲段时间一致性的方案承载高并发读的需求