Eureka注册中央集群

打印 上一主题 下一主题

主题 862|帖子 862|积分 2586

目录
Eureka注册中央高可用集群概述
高可用性需求
高可用解决方案
Eureka Server高可用机制
Eureka注册中央高可用集群搭建
EurekaServerMinor
Eureka详解
服务消费者模式
服务注册模式
关闭自我保护机制


Eureka注册中央高可用集群概述

高可用性需求


微服务架构:
  在分布式体系中,必须充实思量各个微服务组件的高可用性,克制单点故障。
  注册中央Eureka本身也是一个服务,如果只有一个节点,可能会发生故障,导致无法进行服务注册与查询。
高可用解决方案


注册中央集群:
  为相识决单点故障题目,需要构建高可用的服务注册中央,即通过注册中央集群来实现。
  Eureka服务注册中央:
    本身既是一个服务提供者,也是一个服务消费者。
    通过配置`eureka.client.register-with-eureka=false`,可以让注册中央不注册自己,但可以向其他注册中央注册自己。
Eureka Server高可用机制


相互注册:
  Eureka Server的高可用性是通过将自己作为服务向其他Eureka Server注册来实现的。
  多个Eureka Server之间相互注册,形成一组相互连接的服务注册中央。
服务清单同步:
  在注册中央A上注册的服务,会被复制同步到注册中央B上。
  因此,从任何一台注册中央上都能查询到已经注册的服务,从而实现服务清单的相互同步。
高可用效果:
  通过这种机制,纵然某个Eureka Server节点发生故障,其他节点仍然可以提供服务注册与查询功能,确保整个体系的高可用性。
Eureka注册中央高可用集群搭建

EurekaServerMinor

将EurekaServer复制几份,好比这里复制一份出来,application.yml如下:
  1. server:
  2.   port: 7004
  3. spring:
  4.   application:
  5.     name: EurekaServer
  6. eureka:
  7.   instance:
  8.     hostname: 127.0.0.1
  9.   client:
  10.     register-with-eureka: true
  11.     fetch-registry: true
  12.     service-url:
  13.       defaultZone: http://127.0.0.1:7001/eureka
复制代码
启动类加上@EnableEurekaServer注解,启动乐成后当前服务节点也会注册上去:

要保证服务节点之间能相互访问,如果不能相互访问,Eureka服务中的数据不能同步共享,我们需要在C:\Windows\System32\drivers\etc目录下的hosts文件中添加两行配置,如下:
  1. 127.0.0.1 eureka7001
  2. 127.0.0.1 eureka7004
复制代码
也可以多复制几份出来。
Eureka详解

服务消费者模式

    获取服务
    消费者启动时,利用服务别名向服务注册中央发送REST哀求,获取对应服务信息。
    信息缓存到本地JVM客户端,并每隔30秒从服务器更新一次。
    可通过`eureka.client.registry-fetch-interval-seconds=30`参数修改更新隔断。
    服务下线
    服务实例关闭时,会触发服务下线的REST哀求给Eureka Server。
    Eureka Server接收哀求后,将服务状态置为下线并传播下线事件。
服务注册模式

    失效剔除
    Eureka Server启动时创建定时使命,默认每隔60秒实行一次。
    将当前清单中超时(默认为90秒)没有续约的服务剔除。
    Eureka服务注册中央自我保护机制
    当Eureka Server一分钟内收到的心跳数大量减少时,触发保护机制。
    告诫信息出如今Eureka信息面板中,提示触发了自我保护机制。
    机制旨在保护注册信息,克制因网络题目导致的服务误剔除。
    在保护期内,纵然实例出现题目,Eureka也不会将其剔除。
    客户端需具备容错机制,如重试、断路器等,以应对可能的服务调用失败。
    自我保护模式可克制因网络分区故障导致的服务不可用题目。

关闭自我保护机制

服务端配置
  1. eureka:
  2.   server:
  3.     enable-self-preservation: false    #自我保护模式默认是自动开启的,可以选择关闭,禁用自我保护模式,保证不可用的服务及时剔除
  4.     eviction-interval-timer-in-ms: 60000    #剔除失效服务间隔单位ms,默认1分钟
复制代码
客户端
  1.   instance:
  2.     lease-renewal-interval-in-seconds: 1    #间隔1s,向服务端发送一次心跳,证明自己依然“存活”
  3.     lease-expiration-duration-in-seconds: 2    # 告诉服务端,如果我2s之内没有给你发心跳,就代表我“死”了,请将我踢掉
复制代码
关闭后如下:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

兜兜零元

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表