“Eureka 集群原理”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
 
(未显示同一用户的2个中间版本)
第18行: 第18行:
  
 
如果重新启动 Eureka Server,会销毁所有实例。
 
如果重新启动 Eureka Server,会销毁所有实例。
 +
 +
 +
 +
 +
=== 自我保护机制 ===
 +
Eureka 中有一种自我保护机制。
 +
 +
当15分钟内超过85%的 Eureka Client 都没有正常的心跳包时,Eureka 认为 Server 和 Client 之间出现了网络问题。
 +
 +
这个时候将不在因为没有收到心跳而销毁实例。
 +
 +
Eureka Client 依然可以访问 Server,但是 Server 不会把内容同步到其他 Server 中。
 +
 +
当网络稳定后,Server 会把注册的信息同步到其他 Server 中。
 +
 +
在 Eureka 中自我保护机制默认是开启的:
 +
 +
<code>eureka.server.enable-self-preservation=true</code>
 +
 +
 +
 +
 +
 +
=== 关闭自我保护 ===
 +
<syntaxhighlight lang="yaml">
 +
eureka:
 +
  server:
 +
    enable-self-preservation: false
 +
    eviction-interval-timer-in-ms: 10000
 +
</syntaxhighlight>

2023年3月11日 (六) 03:16的最新版本

https://www.bilibili.com/video/BV1eU4y187zE/?p=12

生成缩略图出错:无法将缩略图保存到目标地点

解释说明

所有 Eureka Server 通过 Replicate 进行数据同步。

无论 Eureka Client 向哪个 Eureka Server 中注册信息,最终所有 Eureka Server 中都会存储注册信息,这些信息都缓存到 Eureka Server 的本地。

每个 Eureka Server 中同步后的数据都是完全相同的。

Eureka Client 向 Eureka Server 注册信息的时候我们称它为 Application Service,当获取注册的信息时称为 Application Client,由于可能出现某个 Eureka Client 既需要注册服务,又需要获取其他服务,所以很多 Eureka Client 既是 Application Service 又是 Application Client。

Eureka Client 启动后,每隔30秒向 Eureka Server 发送一次心跳,证明自己的可用,可通过 eureka.instance.lease-renewal-interval-in-seconds 修改心跳的时间间隔(默认值 30)。

当 Eureka Server 超过90秒没有收到提供者的心跳后,会认为这个提供者已经宕机,销毁实例。

可以通过 eureka.instance.lease-expiration-duration-in-seconds 修改时间(默认值 90)。

如果重新启动 Eureka Server,会销毁所有实例。



自我保护机制

Eureka 中有一种自我保护机制。

当15分钟内超过85%的 Eureka Client 都没有正常的心跳包时,Eureka 认为 Server 和 Client 之间出现了网络问题。

这个时候将不在因为没有收到心跳而销毁实例。

Eureka Client 依然可以访问 Server,但是 Server 不会把内容同步到其他 Server 中。

当网络稳定后,Server 会把注册的信息同步到其他 Server 中。

在 Eureka 中自我保护机制默认是开启的:

eureka.server.enable-self-preservation=true



关闭自我保护

eureka:
  server:
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 10000