本文介绍Eureka 注册中心的搭建
相关依赖版本

  • spring-boot - 2.1.4.RELEASE
  • spring-cloud - Greenwich.SR1


基于父工程创建子工程命名为:server-eureka
源码项目地址见文末

1.添加Maven依赖

  <parent>
    <artifactId>spring-could-example</artifactId>
    <groupId>com.example</groupId>
    <version>1.0.0</version>
  </parent>

  <modelVersion>4.0.0</modelVersion>
  <artifactId>server-eureka</artifactId>
  <description>Eureka 注册中心服务端</description>

  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
    </dependency>
  </dependencies>

2.配置文件

server:
  port: 7001
eureka:
  instance:
    # hostname不配置的话,会根据操作系统的主机名来获取
    hostname: 127.0.0.1
  server:
    enable-self-preservation: false      # 自我保护模式(默认为打开)
    eviction-interval-timer-in-ms: 5000  # 续期时间,即扫描失效服务的间隔时间(缺省为60*1000ms)
  client:
    register-with-eureka: false   #是否将自己注册到eureka中
    fetch-registry: false         #是否从eureka中获取信息
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

2.1自我保护模式
服务注册到Eureka服务端后,在运行期间会维护一个心跳连接,统计心跳失败的比例在15分钟内是否低于85%。
若低于,会将当前的实例注册信息保护起来,让这些实例不会过期,可以配置 eureka.server.enable-self-preservation=false 来关闭保护机制
关闭保护机制后,信息面板中会显示

THE SELF PRESERVATION MODE IS TURNED OFF.THIS MAY NOT PROTECT INSTANCE EXPIRY IN CASE OF NETWORK/OTHER PROBLEMS.


2.2服务续约
注册服务后,服务提供者会与Eureka服务端之间维护一个心跳连接用于判断服务是否正常,心跳连接也防止eureka server的剔除任务将该服务实例从服务列表中排除出去,该操作称为服务续约

eureka:
  instance:
    lease-renewal-interval-in-seconds: 30     #定义服务续约任务的调用间隔时间(默认30s,官方不推荐修改)
    lease-expiration-duration-in-seconds: 90  #定义服务失效的时间(默认90s,官方不推荐修改)

3.启动类

注:需要添加注解 @EnableEurekaServer

/**
 * 服务注册与发现之 Eureka
 *
 * @author 程序员小强
 */
@EnableEurekaServer
@SpringBootApplication
public class EurekaApplication {
  public static void main(String[] args) {
    SpringApplication.run(EurekaApplication.class, args);
  }
}

4.Web服务管理界面

打开浏览器输入 http://localhost:7001/

在这里插入图片描述

5.源码地址

传送门

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐