首页 > 编程语言 > 详细

springcloud-eureka

时间:2020-09-20 23:58:42      阅读:53      评论:0      收藏:0      [点我收藏+]

注册中心

eureka工作机制:

  • 服务提供者注册

一次一次地尝试注册,直到注册成功为止

  • 心跳

30秒发送一次心跳

eureka连续三次收不到一个服务的心跳,会删除这个服务

  • 服务消费者拉取注册表

每30秒拉取一次注册表,刷新注册表

  • 自我保护模式

自我保护模式是一种特殊情况,如果15分钟内,85%以上服务器都出现心跳异常(可能是网络不稳定),eureka会进入自我保护模式,所有的注册信息都不删除。

等待网络恢复后,可以自动退出保护模式

开发期间,为了影响测试,可以先关闭保护模式

pom.xml

 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>

application.yml

 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集群服务器之间,通过hostname来区分
  • eureka.server.enable-self-preservation

eureka的自我保护状态:心跳失败的比例,在15分钟内是否超过85%,如果出现了超过的情况,Eurka Server会将当前的实例注册信息保护起来,同时提示一个警告,一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的服务。

  • eureka.client.register-with-eureka=false

不向自身注册

  • eureka.client.fetch-registry=false

不从自身拉取注册信息

  • eureka.instance.lease-expiration-duration-in-seconds

最后一次心跳后,间隔多久认定微服务不可以,默认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 }

修改hosts文件,添加eureka域名映射

host文件地址:C:\Windows\System32\drivers\etc\hosts

添加内容:

127.0.0.1 eureka1

127.0.0.1 eureka2

启动,访问eureka,网址:http://eureka1:2001

 121212

springcloud-eureka

原文:https://www.cnblogs.com/lxzlovewyq/p/13702400.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!