01-Eureka是什么?

要了解Eureka就要了解Spring Cloud Netflix项目

一.Spring Cloud Netflix是什么?

Spring Cloud Netflix是,Spring Cloud旗下一个独立项目。为 Spring Boot 应用程序提供集成。通过一些简单的注解,你可以在应用程序中快速启用和配置通用模式,并使用经过实际应用的 Netflix 组件构建大型分布式系统。提供的模式包括服务发现(Eureka)、断路器(Hystrix)、智能路由(Zuul)和客户端负载平衡(Ribbon)。

二.Eureka是什么?

Eurake是netflix的核心模块之一,基于REST的服务,用来实现分布式系统的服务治理。在传统的rpc远程调用框架中,需要对复杂的依赖和调用关系经行管理。Eureka可以实现服务调用、容错等,服务发现与注册。Eureka遵循的是AP原则。在 Spring Cloud 微服务架构中通常用作注册中心。我们称这个服务为 Eureka Server,还有一个与之交互的客户端称之为 Eureka Client

2.1——什么是服务注册与发现?

在服务注册与发现中,有一个注册中心,当服务器启动的时候,生产者会把当前服务注册到注册中心,消费者以服务名或其他的方式获取服务,然后实现本地rpc远程调用框架核心设计思想;在于注册中心,因为使用注册中心管理每个服务与服务之间得一个依赖关系(服务治理概念),在任何rpc远程框架中,都会有一个注册中心(存放服务地址相关信息(接口地址))
在这里插入图片描述
Eureka采用C/S的设计架构,Eureka包含两个组件:Eureka ServerEureka Client
Eureka server 是服务注册中心。而系统中的其他微服务,使用Eureka Server并维持心跳连接,这样系统的维护人员通过Eureka Server来监控系统中各个微服务是否正常运行。

小结
  1. Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址 提供者:启动后向Eureka注册自己信息(地址,提供什么服务)
  2. 消费者:向Eureka订阅服务,Eureka会将对应服务的所有提供者地址列表发送给消费者,并且定期更新
  3. 心跳(续约):提供者定期通过http方式向Eureka刷新自己的状态

2.2——Eureka 客户端与服务端之间如何通信

服务发现有两种模式:一种是客户端发现模式,一种是服务端发现模式。Eureka采用的是客户端发现模式。

  1. 第一步服务注册(Register)
    Eureka客户端将关于运行实例的信息注册到Eureka服务器。注册发生在第一次心跳。
    application.yml配置如下
eureka:
  instance:
    instance-id: provider_8001
  client: #客户端
    register-with-eureka: true #表示是否想eureka注册中心注册自己
#    fetch-registry: false #为false表示自己是注册中心
    service-url: #eureka自带的监控页面
      defaultZone: http://localhost:7001/eureka/
  1. Renew(更新/续借/维持心跳连接)
    Eureka客户端需要更新最新注册信息,通过每30秒发送一次心跳。更新通知是为了告诉Eureka服务器改服务仍然存活。如果服务器在90秒内没有收到心跳,它会进入我保护模式。
    在这里插入图片描述
  2. 客户端获取注册信息
    Eureka客户端从服务器获取注册表信息并在本地缓存。之后,客户端使用这些信息来查找对应的服务。这些信息会定期更新(每30秒更新一次)。获取的时候可能返回相同的实例。Eureka客户端自动处理重复信息。

2.3——Eureka的自我保护模式

如果 Eureka 服务器检测到超过预期数量的注册客户端以一种不优雅的方式终止了连接,并且同时正在等待被驱逐,那么它们将进入自我保护模式。这样做是为了确保灾难性网络事件不会擦除eureka注册表数据,并将其向下传播到所有客户端。

任何客户端,如果连续3次心跳更新失败,那么它将被视为非正常终止,病句将被剔除。当超过当前注册实例15%的客户端都处于这种状态,那么自我保护将被开启。

当自我保护开启以后,eureka服务器将停止剔除所有实例,直到:

它看到的心跳续借的数量回到了预期的阈值之上,或者
自我保护被禁用
默认情况下,自我保护是启用的,并且,默认的阈值是要大于当前注册数量的15%

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值