Eureka包含两个组件:Eureka Server和Eureka Client
 
Eureka Server提供服务发现的能力,各个微服务启动时,会向Eureka Server注册自己的信息(例如IP、端口、微服务名称等),Eureka Serverh会存储这些信息
Eureka Client是一个Java客户端,用户简化与Eureka Server的交互
微服务启动后,会周期性(默认30秒)地向Eureka Server发送心跳以续约自己的“租期”
如果Eureka Server在一定时间内没有j接收到某个微服务实例d的心跳,Eureka Server将会注销该实例(默认90)
默认情况下,Eureka Server同时也Eureka Client。多个Eureka Server实例,互相之间通过复制的方式,来实现服务注册表中数据的异步
Eureka Client会缓存服务注册表中的信息。这种方式有一定的优势,首先,微服务无须每次请求都查询Eureka Server,从而降低了Eureka Server的压力;其次,即使Eureka Server所有节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者并完成调用
 
总结:Eureka通过心跳检查、客户端缓存等机制,提高了系统的灵活性、可伸缩性和可用性
 
 
自我保护模式:
默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销该实例(默认90秒)。但是当网络分区故障发生时,微服务与Eureka Server之间无法正常通信,以上行为可能变得非常危险,因为微服务本身其实是健康的,此时不应该注销这个微服务。
自我保护模式就是用来解决此问题。
当Eureka Server节点在短时间内丢失过多客户端时(可能发生了网络分区故障),那么这个节点就会进入自我保护模式。一旦进入该模式,Eureka Server就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢复后,该Eureka Server节点会自动退出自我保护模式。
 
使用自我保护模式,可以让Eureka Server集群更加的健壮、稳定
eureka.server.enable-self-preservation = false 关闭自我保护模式
 
Eureka高可用:
Eureka Server发生宕机,可以通过运行多个实例并相互注册的方式实现高可用部署,Eureka Server实例会彼此增量地同步信息,从而确保所有节点数据一致。
1.复制Eureka Server项目,修改ArtifactId
2.配置系统的hosts, 127.0.00.1 peer1 peer2
3.修改application.yml,让两个节点的Eureka Server相互注册
 
Eureka的元数据:
Eureka的元数据有两种,分别是标准元数据和自定义元数据
标准元数据指的是主机名、IP地址、端口号、状态页和健康检查等信息,这些信息都会被发布在服务注册表中,用于服务之间的调用。自定义元数据可以使用eureka.instance.metadata-map配置,这些元数据可以在远程客户端中访问
 
多网卡环境下的IP选择:
1.忽略指定名称的网卡
spring:
    cloud:
        inetutils:
            ignored-interfaces:
                - docker0
                - veth.*
eureka:
    instance:
        prefer-ip-address: true
 
2.使用正则表达式,指定使用的网络地址
spring:
    coud:
        inetutils:
            preferredNetworks:
                - 192.168
                - 10.0
 
3.只使用站点本地地址
spring:
    coud:
        inetutils:
            useOnlySiteLocalInterfaces: true
eureka:
    instance:
        prefer-ip-address: true
这样就可以强制使用站点本地地址
 
4.手动指定IP地址
eureka:
    instance:
        prefer-ip-address: true
        ip-address: 127.0.0.1
 

Eureka组件、Eureka自我保护模式的更多相关文章

  1. Eureka的自我保护模式

    一 Eureka的自我保护模式 进入自我保护模式最直观的体现就是Eureka Server首页的警告,如下图: 默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,E ...

  2. Eureka自我保护模式——难点重点

    一.开启Eureka自我保护模式访问Eureka主页时,如果看到这样一段大红色的句子: EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ...

  3. SpringCloud系列六:Eureka的自我保护模式、IP选择、健康检查

    1. 回顾 前面讲了很多Eureka的用法,比如Eureka Server.Eureka Server的高可用.Eureka Server的用户认证(虽然未完全实现).元数据等, 这章将讲解剩下的自我 ...

  4. Eureka注册中心的自我保护模式

    如果在Eureka Server的首页看到以下这段提示,则说明Eureka已经进入了保护模式. EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTAN ...

  5. Spring Cloud Eureka的自我保护模式与实例下线剔除

    之前我说明了Eureka注册中心的保护模式,由于在该模式下不能剔除失效节点,故按原有配置在实际中不剔除总感觉不是太好,所以深入研究了一下.当然,这里重申一下,不管实例是否有效剔除,消费端实现Ribbo ...

  6. SpringCloud学习系列-Eureka自我保护模式(5)

    什么是自我保护模式? 默认情况下,如果EurekaServer在一定时间内没有接收到某个微服务实例的心跳,EurekaServer将会注销该实例(默认90秒).但是当网络分区故障发生时,微服务与Eur ...

  7. ①SpringCloud 实战:引入Eureka组件,完善服务治理

    简介 Netflix Eureka 是一款由 Netflix 开源的基于 REST 服务的注册中心,用于提供服务发现功能.Spring Cloud Eureka 是 Spring Cloud Netf ...

  8. SpringCloud-day03-服务注册与发现组件Eureka

    5.服务注册与发现组件Eureka 5.1Eureka简介: Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中 ...

  9. SpringCloud 组件Eureka参数配置项详解

    Eureka涉及到的参数配置项数量众多,它的很多功能都是通过参数配置来实现的,了解这些参数的含义有助于我们更好的应用Eureka的各种功能,下面对Eureka的配置项做具体介绍,供大家参考. Eure ...

随机推荐

  1. sdut 4-1 复数类的运算符重载

    4-1 复数类的运算符重载 Time Limit: 1000MS Memory limit: 65536K 题目描写叙述 通过本题目的练习能够掌握成员运算符重载及友元运算符重载 要求定义一个复数类.重 ...

  2. kentico7中设置site的default page

    在SiteManager中,Settings中,选择好站点,然后Content,Default alias path

  3. Hadoop安装配置(ubuntu-12.04.2-server-amd64)

    环境如下: ubuntu-12.04.2-server-amd64 hadoop-1.0.4 VirtualBox 1.在VBox中安装Ubuntu Server,用户名和密码都是hadoop,安装完 ...

  4. selenium3.4.3 + python3.6 + HTMLTestRunner0.8.0

    HTMLTestRunner下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html.该页面下载的HTMLTestRunner默认支持pytho ...

  5. Commons-FileUpload 常用API

    ServerFileUpload类的常用方法 方法名称 方法描述 public void setSizeMax(long sizeMax) 设置请求信息实体内容的最大允许的字节数 public Lis ...

  6. PCB DotNetCore Swagger生成WebAPI文档配置方法

    在.net framework框架下可以使用WebApiTestClientWebApi生成WebAPI接口文档与方便接口测试用,而在DotnetCore却没有找到这个工具了,baidu查找一下发现有 ...

  7. 插入CSS的方法

    传送门    选择器  selector {declaration1; declaration2; ... declarationN }   例:   p { text-aligh:center; } ...

  8. bzoj 1700: [Usaco2007 Jan]Problem Solving 解题【dp】

    很像贪心的dp啊 这个定金尾款的设定让我想起了lolita和jk制服的尾款地狱-- 设f[i][j]为从j到i的付定金的最早月份然后从f[k][j-1]转移来,两种转移f[i][j]=min(f[i] ...

  9. [Swift]关键字:Self、self与super

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  10. eslint 的配置

    安装 可以全局安装,也可以在项目下面安装. 如下是在项目中安装示例,只需要在 package.json 中添加如下配置,并进行安装: >"eslint": "^4. ...