eureka 读写锁的一点思考

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

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

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

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

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

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

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

当然!以下是一个更全面的Linux下Eureka安装的步骤: 1. 安装Java:确保您的Linux系统已经安装了Java开发环境(JDK)。您可以使用以下命令检查是否已安装Java: ``` java -version ``` 如果未安装Java,请根据您的Linux发行版选择适当的安装方法。 2. 下载Eureka Server:您可以从Spring官方网站或者Maven中央仓库下载Eureka Server的JAR文件。例如,您可以使用以下命令从Maven中央仓库下载最新版本: ``` wget https://repo1.maven.org/maven2/org/springframework/cloud/spring-cloud-starter-netflix-eureka-server/2.2.6.RELEASE/spring-cloud-starter-netflix-eureka-server-2.2.6.RELEASE.jar ``` 3. 创建Eureka Server配置文件:在您选择的目录下创建一个名为`application.yml`或者`application.properties`的配置文件,并添加以下内容: ```yaml server: port: 8761 eureka: client: registerWithEureka: false fetchRegistry: false ``` 此配置将设置Eureka Server监听的端口为8761,并禁用Eureka客户端的自动注册和服务发现。 4. 启动Eureka Server:使用以下命令启动Eureka Server: ``` java -jar spring-cloud-starter-netflix-eureka-server-2.2.6.RELEASE.jar ``` 确保在命令中替换`spring-cloud-starter-netflix-eureka-server-2.2.6.RELEASE.jar`为您下载的Eureka Server JAR文件的实际路径。 5. 验证Eureka Server:在浏览器中访问http://localhost:8761/,您应该能够看到Eureka Server的管理页面。如果一切正常,您将看到一个空的实例列表。 这样,您就成功安装和验证了Eureka Server。接下来,您可以将您的微服务应用程序注册到Eureka Server上。请根据具体的项目需求配置和启动Eureka Client。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值