MST

星途 面试题库

面试题:微服务架构下Spring Cloud服务目录管理之Eureka配置

在Spring Cloud微服务架构中,使用Eureka进行服务目录管理时,如何配置Eureka Server使其能够注册和发现服务?请详细说明相关配置文件的关键参数及含义。
26.5万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试
  1. Maven依赖: 在pom.xml文件中添加Eureka Server相关依赖:
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring - cloud - starter - netflix - eureka - server</artifactId>
    </dependency>
    
  2. 配置文件(application.yml为例)
    server:
      port: 8761 # Eureka Server的端口,可自行设定
    eureka:
      instance:
        hostname: localhost # Eureka Server的主机名,单机测试时可设为localhost,集群环境需设为实际主机名
      client:
        register - with - eureka: false # 表示是否将自己注册到Eureka Server,因为当前是Eureka Server,所以设为false
        fetch - registry: false # 表示是否从Eureka Server获取注册信息,由于本身就是Server,设为false
        service - url:
          defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ # Eureka Server之间相互注册的地址,单机时指向自己
    
  3. 启动类配置: 在Spring Boot启动类上添加@EnableEurekaServer注解,以启用Eureka Server功能。例如:
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
    
    @SpringBootApplication
    @EnableEurekaServer
    public class EurekaServerApplication {
        public static void main(String[] args) {
            SpringApplication.run(EurekaServerApplication.class, args);
        }
    }
    

关键参数含义总结:

  • server.port:定义Eureka Server运行的端口。
  • eureka.instance.hostname:Eureka Server实例的主机名,用于服务注册和相互发现。
  • eureka.client.register - with - eureka:决定当前实例是否注册到Eureka Server。
  • eureka.client.fetch - registry:决定当前实例是否从Eureka Server获取服务注册信息。
  • eureka.client.service - url.defaultZone:指定Eureka Server之间相互注册和发现的地址。