本文共 1897 字,大约阅读时间需要 6 分钟。
要了解Eureka就要了解Spring Cloud Netflix项目
Spring Cloud Netflix是,Spring Cloud旗下一个独立项目。为 Spring Boot 应用程序提供集成。通过一些简单的注解,你可以在应用程序中快速启用和配置通用模式,并使用经过实际应用的 Netflix 组件构建大型分布式系统。提供的模式包括服务发现(Eureka)、断路器(Hystrix)、智能路由(Zuul)和客户端负载平衡(Ribbon)。
Eurake是netflix的核心模块之一,基于REST的服务,用来实现分布式系统的服务治理。在传统的rpc远程调用框架中,需要对复杂的依赖和调用关系经行管理。Eureka可以实现服务调用、容错等,服务发现与注册。Eureka遵循的是AP原则。在 Spring Cloud 微服务架构中通常用作注册中心。我们称这个服务为 Eureka Server,还有一个与之交互的客户端称之为 Eureka Client
在服务注册与发现中,有一个注册中心,当服务器启动的时候,生产者会把当前服务注册到注册中心,消费者以服务名或其他的方式获取服务,然后实现本地rpc远程调用框架核心设计思想;在于注册中心,因为使用注册中心管理每个服务与服务之间得一个依赖关系(服务治理概念),在任何rpc远程框架中,都会有一个注册中心(存放服务地址相关信息(接口地址))
Eureka采用C/S的设计架构,Eureka包含两个组件:Eureka Server 和 Eureka Client。 Eureka server 是服务注册中心。而系统中的其他微服务,使用Eureka Server并维持心跳连接,这样系统的维护人员通过Eureka Server来监控系统中各个微服务是否正常运行。服务发现有两种模式:一种是客户端发现模式,一种是服务端发现模式。Eureka采用的是客户端发现模式。
eureka: instance: instance-id: provider_8001 client: #客户端 register-with-eureka: true #表示是否想eureka注册中心注册自己# fetch-registry: false #为false表示自己是注册中心 service-url: #eureka自带的监控页面 defaultZone: http://localhost:7001/eureka/
如果 Eureka 服务器检测到超过预期数量的注册客户端以一种不优雅的方式终止了连接,并且同时正在等待被驱逐,那么它们将进入自我保护模式。这样做是为了确保灾难性网络事件不会擦除eureka注册表数据,并将其向下传播到所有客户端。
任何客户端,如果连续3次心跳更新失败,那么它将被视为非正常终止,病句将被剔除。当超过当前注册实例15%的客户端都处于这种状态,那么自我保护将被开启。
当自我保护开启以后,eureka服务器将停止剔除所有实例,直到:
它看到的心跳续借的数量回到了预期的阈值之上,或者
自我保护被禁用 默认情况下,自我保护是启用的,并且,默认的阈值是要大于当前注册数量的15%转载地址:http://wqrwi.baihongyu.com/