eureka工作机制:
一次一次地尝试注册,直到注册成功为止
30秒发送一次心跳
eureka连续三次收不到一个服务的心跳,会删除这个服务
每30秒拉取一次注册表,刷新注册表
自我保护模式是一种特殊情况,如果15分钟内,85%以上服务器都出现心跳异常(可能是网络不稳定),eureka会进入自我保护模式,所有的注册信息都不删除。
等待网络恢复后,可以自动退出保护模式
开发期间,为了影响测试,可以先关闭保护模式
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-parent</artifactId> 8 <version>2.3.4.RELEASE</version> 9 <relativePath/> <!-- lookup parent from repository --> 10 </parent> 11 <groupId>com.dz</groupId> 12 <artifactId>sp06-eureka</artifactId> 13 <version>0.0.1-SNAPSHOT</version> 14 <name>sp06-eureka</name> 15 <description>Demo project for Spring Boot</description> 16 17 <properties> 18 <java.version>1.8</java.version> 19 <spring-cloud.version>Hoxton.SR8</spring-cloud.version> 20 </properties> 21 22 <dependencies> 23 <dependency> 24 <groupId>org.springframework.cloud</groupId> 25 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> 26 </dependency> 27 28 <dependency> 29 <groupId>org.springframework.boot</groupId> 30 <artifactId>spring-boot-starter-test</artifactId> 31 <scope>test</scope> 32 <exclusions> 33 <exclusion> 34 <groupId>org.junit.vintage</groupId> 35 <artifactId>junit-vintage-engine</artifactId> 36 </exclusion> 37 </exclusions> 38 </dependency> 39 </dependencies> 40 41 <dependencyManagement> 42 <dependencies> 43 <dependency> 44 <groupId>org.springframework.cloud</groupId> 45 <artifactId>spring-cloud-dependencies</artifactId> 46 <version>${spring-cloud.version}</version> 47 <type>pom</type> 48 <scope>import</scope> 49 </dependency> 50 </dependencies> 51 </dependencyManagement> 52 53 <build> 54 <plugins> 55 <plugin> 56 <groupId>org.springframework.boot</groupId> 57 <artifactId>spring-boot-maven-plugin</artifactId> 58 </plugin> 59 </plugins> 60 </build> 61 62 </project>
1 spring: 2 application: 3 name: eureka-server 4 server: 5 port: 2001 6 eureka: 7 server: 8 enable-self-preservation: false //自我保护 9 instance: 10 hostname: eureka1 11 client: 12 register-with-eureka: false 13 fetch-registry: false
eureka的自我保护状态:心跳失败的比例,在15分钟内是否超过85%,如果出现了超过的情况,Eurka Server会将当前的实例注册信息保护起来,同时提示一个警告,一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的服务。
不向自身注册
不从自身拉取注册信息
最后一次心跳后,间隔多久认定微服务不可以,默认90
添加@EnableEurekaServer
1 @EnableEurekaServer 2 @SpringBootApplication 3 public class Sp06EurekaApplication { 4 5 public static void main(String[] args) { 6 SpringApplication.run(Sp06EurekaApplication.class, args); 7 } 8 9 }
host文件地址:C:\Windows\System32\drivers\etc\hosts
添加内容:
127.0.0.1 eureka1
127.0.0.1 eureka2
启动,访问eureka,网址:http://eureka1:2001
121212
原文:https://www.cnblogs.com/lxzlovewyq/p/13702400.html