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. myeclipse下jsp页面汉字不能保存问题

    在JSP页面中写了些汉字,结果想保存时,却提示编码不对.真扯!说什么"ISO-9000"之类的东东. 我记得以前可以在eclipse的菜单"编辑"中指定当前文件 ...

  2. 【bzoj1507】[NOI2003]Editor

    第二次写rope了 rope大法好!!! #include<algorithm> #include<iostream> #include<ext/rope> #in ...

  3. jboss相关的术语

    1 jboss eap java ee application server.red hat官方版本. 2 jboss as/wildfly java ee application server的社区 ...

  4. Swing中子元素截获MouseEvent问题

    在父元素中绑定MouseMotion监听,但是当鼠标在子元素中时父元素无法收到 这时候需要在子元素中绑定MouseMotion,然后使用: getParent().dispatchEvent(e); ...

  5. CSU 1806 Toll 自适应simpson积分+最短路

    分析:根据这个题学了一发自适应simpson积分(原来积分还可以这么求),然后就是套模板了 学习自适应simpson积分:http://blog.csdn.net/greatwall1995/arti ...

  6. 【bug】Android版QQ浏览器广告过滤

    省流加速 - 广告过滤   默认开启 设别广告是添加的标签最外层标签带有adv download

  7. Spark 决策树--回归模型

    package Spark_MLlib import org.apache.spark.ml.Pipeline import org.apache.spark.ml.evaluation.Regres ...

  8. jQuery EasyUI,LinkButton(按钮)组件

    转自:https://www.cnblogs.com/adc8868/p/6639570.html jQuery EasyUI,LinkButton(按钮)组件 学习要点: 1.加载方式 2.属性列表 ...

  9. java HashMap和LinkedHashMap区别

    我们用的最多的是HashMap,在Map 中插入.删除和定位元素,HashMap 是最好的选择.但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好.如果需要输出的顺序和输入的相同,那么用 ...

  10. python orm / 表与model相互转换

    orm英文全称object relational mapping,就是对象映射关系程序,简单来说我们类似python这种面向对象的程序来说一切皆对象,但是我们使用的数据库却都是关系型的,为了保证一致的 ...