SpringCloud中Eureka组件原理,以及为什么重启服务之后,会访问不到数据

SpringCloud中的Eureka组件原理:

​ Eureka是SpringCloud的一个服务注册组件,其中包含两个组件:Eureka Server (注册中心) 和 Eureka Client (服务提供者、服务消费者)。其主要作用是注册和消费,心跳续约,服务剔除。

​ 当Eureka运行时,服务的生产者会将它的ip地址,端口号,预约的配置,和访问路径等信息传递到Eureka的注册资源表(cconcurrentHashMap)中,之后会将注册资源表中的信息同步到ReadWrite;而在Eureka中还会有个定时线程任务对ReadWrite进行监控,当ReadWrite进行改变的时候,将数据定时复制到ReadOnly中;而服务消费方进行数据拉取的时候,也并不是直接在ReadWrite中拉取,就直接到ReadOnly拉取。

当生产者宕机之后,会停止发送心跳到注册资源表中,此时会先将ReadWrite中的所有数据线进行删除,在添加新的所有注册资源表中的信息,重新通过定时器刷新到ReadOnly中; 所以当Eureka重新启动,或者其他微服务重新启动后,会产生一定的延迟,导致数据不能访问到,稍等一会就可以了.
eureka原理图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值