Spring cloud eureka 原理及流程

Eureka是一个基于HTTP的微服务发现组件,用于在分布式系统中定位服务。它的工作流程包括服务注册、心跳续约、服务剔除、自我保护机制以及服务调用。EurekaServer维护服务注册表,而EurekaClient向Server注册并发送心跳。在网络异常时,Eureka会进入自我保护模式避免服务过早剔除。服务调用时,Client会从本地缓存或Server获取服务信息,并使用负载均衡策略如轮询进行选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring cloud eureka 原理:

1.eureka server 端: 1⃣️client向server端注册,server端维护一个两层Map结构,存储注册信息(一层存服务名称,一层存ip)
2⃣️消费者调用服务时,如果 Eureka Client 没有缓存注册表的话,会从 Eureka Server 获取最新的注册表3⃣️集群中的server通过复制各自状态同步信息4⃣️服务剔除5⃣️自我保护

2.eureka client端:
1⃣️向server端注册2⃣️向server端发送心跳,续约2⃣️从server端拉取注册信息并缓存3⃣️定时更新列表4⃣️client端关闭时会向server端发送取消租约

3.server端和client端通信是根据http协议

4.eureka强调了CAP中的AP,即可用性和分区容错性,他与Zookeeper这类强调CP(一致性和分区容错性)最大的区别就是eureka为了实现更高的服务可用性,牺牲了一致性

Eurka 工作流程

1、Eureka Server 启动成功,等待服务端注册。在启动过程中如果配置了集群,集群之间定时通过 Replicate 复制同步注册表,每个 Eureka Server 都存在独立完整的服务注册表信息

2、Eureka Client 启动时根据配置的 Eureka Server 地址去注册中心注册服务

3、Eureka Client 会每 30s 向 Eureka Server 发送一次心跳请求续约,证明客户端服务正常

4、当 Eureka Server 90s 内没有收到 Eureka Client 的心跳,注册中心则认为该节点失效,会剔除该实例

5、单位时间内 Eureka Server 统计到有大量的 Eureka Client 没有上送心跳,比如15分钟之内有85%心跳失败,则认为可能为网络异常,进入自我保护机制,不再剔除没有上送心跳的客户端,所以Client客户端一定要有送错机制,比如熔断,幂等

6、当 Eureka Client 心跳请求恢复正常之后,Eureka Server 自动退出自我保护模式

7、Eureka Client 每30秒向Server发送一个rest请求,获取服务注册表,Server端返回一个只读的的列表,并且将获取到的信息缓存到本地

8、服务调用时,Eureka Client 会先从本地缓存找寻调取的服务。如果获取不到,先从注册中心刷新注册表,再同步到本地缓存

9、Eureka Client 获取到目标服务器信息,发起服务调用,具体调用哪个实例,Ribbon会采用默认的轮询策略

10、Eureka Client 程序关闭时向 Eureka Server 发送取消请求,Eureka Server 将实例从注册表中剔除该实例

这就是Eurka基本工作流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值