• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Eureka 오류

24.06.30 17:01 작성 24.06.30 17:04 수정 조회수 54

1

강의의 기본 설정 그대로 아무 메이븐 추가 없이 강의에서 추가하는 메이븐 그대로 추가를 했는데도 계속된 오류가 발생하는데, 혹시 현제 버전에서 어떻게 하면 이 문제를 해결할 수 있는지 가르쳐 줄 수 있을까요?

 

eureka:
  instance:
    instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}}
  client:
    service-url:
      defaultZone: http://127.0.0.1:8761/eureka/
    fetch-registry: true
    register-with-eureka: true

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cloud</groupId>
    <artifactId>user-service-test</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>user-service-test</name>
    <description>user-service-test</description>
,,
    <properties>
        <java.version>17</java.version>
        <spring-cloud.version>2023.0.2</spring-cloud.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-netflix-eureka-server</artifactId>
            <version>4.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>
@SpringBootApplication
@EnableEurekaServer
public class UserServiceTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserServiceTestApplication.class, args);
    }

}

기본 설정 그대로 실행하면 밑에 와 같은 오류가 지속적으로 발생 합니다. 

 

스크린샷 2024-06-30 오후 5.02.58.png

스크린샷 2024-06-30 오후 5.03.04.png

 

 

 

답변 2

·

답변을 작성해보세요.

1

안녕하세요, 이도원입니다.

올려주신 소스 코드를 보면 user-service의 application.yml 파일에서 defautlZone으로 http://127.0.0.1:8761/eureka를 지정하고 있는데, 해당 Eureka 서버가 없어서 생기는 문제인 것 같습니다. user-service 하나로 eureka-server와 eureka-client를 동시에 실행하시고 있는 것처럼 보이는데, eureka-client가 서버에 등록되기 위해서 먼저 eureka 서버가 기동되어야 하는데, 해당 서버는 user-service를 기동하는 순간에는 아직 실행되어 있지 않은 서버이기 때문에, 해당 오류가 발생한 것 같습니다. user-service와 별도의 eureka 서버를 분리하여 실행하시면, 오류는 발생하지 않을 것 같습니다.

추가로, eureka 서버역시 다른 eureka 서버에 등록이 필요하신 생각에서 작업하실려면, eurkea 서버를 2개 실행하신 상태에서 (이때 하나의 Host PC에서 실행하실거라면 포트번호를 다르게 설정 필요) 각각의 eureka 서버가 등록될 서버의 위치로 다른 Eureka 서버의 정보를 지정하여 기동해 볼수도 있습니다.

말씀하신 내용처럼 최신 버전에 대한 오류라기 보다는 user-service에서 eureka 서버 역할을 하면서, user-esrvice를 eureka client로 등록하려고 했을 때 발생하는 문제라고 보여지기 때문에, 말씀드렸던 것처럼 서비스를 분리해서 실행해 보시기 바랍니다.

혹시 질문하신 내용과 다른 답변이었다면 다시 글 남겨주세요.

감사합니다.

황중석님의 프로필

황중석

질문자

2024.07.01

"eureka-server와 eureka-client를 동시에 실행하시고 있는 것처럼 보이는데" 이 부분을 제대로 이해하지 못하고 코드를 작성하다 보니 문제가 발생했네요. 너무 감사합니다!! 한동안 이 문제 때문에 힘들었는데 감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.06.30

안녕하세요, 인프런 AI 인턴입니다.

황중석님의 Eureka 관련 문제를 해결하는 데 도움이 될만한 내용을 찾았습니다.

  • “섹션 1 Service Discovery Eureka Service Discovery 빌드 시 오류납니다.”에서는 IntelliJ Community 버전을 사용하면서 발생하는 Eureka Service Discovery 빌드 시 오류에 대해 질문하고 있습니다. 이 질문에서 지식공유자께서는 application.yml 파일의 구성을 수정하는 방법을 제시하셨습니다. eureka 설정에 spring.application.name 값을 명시적으로 선언하는 것과 같이, YAML 파일의 정확한 문법을 사용하는 것의 중요성을 강조합니다.

  • “Eureka Status 표시”에서는 Eureka 대시보드에 서비스 인스턴스의 IP 주소 대신 컴퓨터 이름이 표시되는 문제를 논의합니다. 이에 대한 해결책으로 eureka.instance.prefer-ip-address 속성을 true로 설정하고, eureka.instance.ip-address를 명시적으로 설정하는 방법을 제안합니다.

현재 황중석님의 문제는 Eureka 클라이언트가 Eureka 서버에 연결하지 못하고 Connection refused 오류를 반환하는 것으로 보입니다. 이는 Eureka 서버가 실행되고 있지 않거나, 네트워크 설정(예: 방화벽, 네트워크 규칙 등)으로 인해 접근할 수 없는 상태일 수 있습니다.

  • 먼저, Eureka 서버가 올바르게 실행되고 있는지 확인하세요. 서버가 8761 포트에서 활성화된 상태여야 합니다.
  • application.yml (또는 application.properties) 파일에 서버의 URL이 올바르게 설정되었는지 검토하세요.
  • 로컬 방화벽 규칙이나 네트워크 보안 설정으로 인해 연결이 차단되지 않았는지 확인하세요.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏

추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

채널톡 아이콘