服务注册中心 Eureka

4.1.服务注册中心 Eureka
1).什么是eureka(保证CAP理论中的AP)

Eureka是一个RESTful服务,有两个组件组成:Eureka服务端和Eureka客户端
Eureka服务端:相当于一个注册中心,里面有注册表,注册表中保存了各个服务所在机器的端口号,可以通过Euraka服务器找到各自的服务系统
Eureka客户端:负责将这个服务的信息注册到Eureka服务端中

2).Euraka的工作原理
服务消费者与服务提供者向Eureka注册,Eureka Server会将注册信息向其他Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,然后会将服务提供者地址缓存在本地,下次在调用时,则直接从本地缓存中去,完成一次调用。
当服务注册中心Euraka Server检测到服务提供者因为宕机,网络原因不可用时,则在服务注册中心将服务置为DOWN状态,并把当前服务提供者状态向订阅者发布,订阅过的服务消费者更新本地存储。
服务提供者在启动后,会周期性(默认30秒)向Eureka Server发送心跳,以证明当前服务是可用状态,Eureka Server在一定的时间(默认90秒)未收到客户端心跳,则认为服务宕机,销毁该服务

3). Eureka的自我保护机制
在默认的配置中,如果90s没有得到客户端的心跳,则会注销该实例,但微服务是跨进行调度,有可能会发生网络不稳定,导致客户端正常运行但因网络延迟,90s内心跳没有发送到服务端从而被注销。
因此,为了解决该问题,Eureka出现了自我保护机制,即,当Eureka Server节点在短时间内丢失过多的客户端时(可能发生了网络故障),那么节点将进入自我保护模式,不再注销任何微服务,当网络恢复正常后,该节点自动退出自我保护机制

启动保护机制:eureka.server.enable-self-preservation=true

4).Euraka心跳机制

1.服务器启动成功,等待客户(服务)端注册,在启动过程中如果我们配置了集群,集群之间会同步注册表,每一个Eureka serve都会存在这个集群完整的服务注册表信息
2.Eureka client 启动时根据配置信息,去注册到指定的注册中心
3.Eureka client会每30秒向Eureka server 发送一次心跳请求,证明该客户端服务正常
4.当Eureka server90s内没有接受客户端服务正常,注册中心会认为该节点失效,会注销该实列 (从注册表中删除注册信息)
5.单位时间内如果服务端统计到大量客户端没有发送心跳,则认为网络异常,进去自我保护机制,不在剔除没有发送心跳的客户端
6.当客户端恢复正常之后,服务端就会退出自我保护模式
7.客户端定时全量或增量从注册中心获取服务注册表,并且会缓存到本地
8.服务调用时,客户端会先从本地缓存找到调用服务,如果调取不到 先从注册中心刷新注册表,在同步到本地
9.客户端获取不到目标服务器信息发起服务调用
10.客户端程序关闭时向服务端发送取消请求,服务器将实例从注册表中删除
5).Eureka搭建
a.创建一个springboot项目作为eureka注册中心服务器
b.引入eureka服务器的依赖
在这里插入图片描述

c.在启动类添加@EnableEurekaServer注解
在这里插入图片描述

d.在配置文件中配置相关注解
在这里插入图片描述

e.在eureka客户端的pom.xml文件中添加eureka客户端依赖
在这里插入图片描述

f. 在客户端启动类添加注解@EnableEurekaClient注解
g.在客户端配置文件中添加注册中心访问地址
在这里插入图片描述

h.启动服务端与客户端,访问注册中心
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值