인프런 커뮤니티 질문&답변

Agrev님의 프로필 이미지

작성한 질문수

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

Spring Cloud Gateway - 프로젝트 생성

apigateway 프로젝트 생성하고 실행시 Timout이출력 됩니다.

24.10.07 20:41 작성

·

38

·

수정됨

0

안녕하세요 강사님, 강의 영상 잘 보고 있습니다.

first-service, second-service 둘다 실행 후에 apigateway-service 실행했습니다. 그런데 apigateway 쪽에서 연결 거부 당했다는 로그가 지속적으로 올라오네요 이유를 모르겠습니다.

 

  • apigateway 의 application yml파일

    • 여기서 궁금한게 defaultZone 설정 해서, discoveryservice 프로젝트도 구동 시켜줬는데, 같은 에러로그가 지속 적으로 올라오네요..

server:
  port: 8000

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://localhost:8761/eureka

spring:
  application:
    name: apigateway-service
  cloud:
    gateway:
      routes:
        - id: first-service
          uri: localhost:8081/first-service
          predicates: # ??? Path ??? first-service?? ?? uri? ??
            - Path=/first-service/**
        - id: second-service
          uri: localhost:8082/second-service
          predicates: # ??? Path ??? second-service?? ?? uri? ??
            - Path=/second-service/**
  • 콘솔 내용

2024-10-07 20:39:53.214  WARN 2024 --- [OvbxrBtUd7XQ-87] o.s.a.r.l.SimpleMessageListenerContainer : Consumer raised exception, processing can restart if the connection factory supports it. Exception summary: org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: no further information
2024-10-07 20:39:53.214  INFO 2024 --- [OvbxrBtUd7XQ-87] o.s.a.r.l.SimpleMessageListenerContainer : Restarting Consumer@4dca89d2: tags=[[]], channel=null, acknowledgeMode=AUTO local queue size=0
2024-10-07 20:39:53.215  INFO 2024 --- [OvbxrBtUd7XQ-88] o.s.a.r.c.CachingConnectionFactory       : Attempting to connect to: [localhost:5672]
  • 추가 예외

2024-10-07 20:51:37.290  INFO 18012 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://localhost:8888
2024-10-07 20:51:37.304  INFO 18012 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Connect Timeout Exception on Url - http://localhost:8888. Will be trying the next url if available
2024-10-07 20:51:37.304  WARN 18012 --- [           main] c.c.c.ConfigServicePropertySourceLocator : Could not locate PropertySource: I/O error on GET request for "http://localhost:8888/apigateway-service/default": Connection refused: no further information; nested exception is java.net.ConnectException: Connection refused: no further information

답변 2

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

2024. 10. 08. 08:43

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

올려주신 오류 메시지를 확인한 내용으로 답변 드립니다.

  1. apigateway-service의 application.yml 파일

    1. routes.uri 부분에 localhost:8081 로 시작하는 부분을 http:// 를 붙여서 http://localhost:8081 와 같이 변경해 보시기 바랍니다.

    2. eureka 설정 부분에 register-with-eureka와 fetch-registry 의 설정 값을 false에서 true로 변경하시기 바랍니다.

  2. 콘솔에 출력 된 localhost:5672 오류는 rabbitmq 서버를 찾지 못해 발생하는 오류입니다. 아직 rabbitmq에 대한 실행 되지 않은 거라면, 일단 무시하시고 실행하셔도 됩니다.

  3. 추가예외에 발생 된 http://localhost:8888 에 관련 된 오류도 config-server가 실행되지 않았거나, 실행되었더라도 apigateway-service 라는 애플리케이션 정보를 얻지 못해 발생하는 오류인 것 같습니다. apigateway-service에서 config 설정하는 부분에서 apigateway-service부분을 user-service 등과 같이 실제 존재하고 있는 yml 파일의 이름으로 변경해 보시기 바랍니다.

추가 질문 사항 있으시면 다시 글 남겨 주세요.

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

2024. 10. 07. 20:46

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

Agrev님이 겪고 계신 apigateway 연결 오류에 대해 몇 가지 중요한 점을 짚어드리겠습니다. Connection refused 에러는 주로 네트워크 설정이나 잘못된 URI 설정 등에서 기인할 수 있습니다.

  1. Eureka 등록 확인:

    • apigateway-service가 Eureka에 올바로 등록되어 있는지 확인해야 합니다. application.yml의 설정에서 register-with-eureka: falsefetch-registry: false가 되어 있으면 Eureka 서버와의 연동이 차단될 수 있습니다. 서비스가 서버에 등록되고 다른 서비스 정보를 가져오도록 true로 설정해보세요.
  2. Gateway URI 설정:

    • URI 설정 시 http://를 명시해야 URL로 인식됩니다. uri: localhost:8081/first-service와 같은 형식 대신 uri: http://localhost:8081/로 변경해 보세요.
  3. RabbitMQ 등 외부 서비스 연결 확인:

    • 로그에 나타난 localhost:5672 연결 실패는 RabbitMQ에 연결하지 못하고 있음을 나타냅니다. RabbitMQ 서버가 실행 중인지, 올바른 포트로 접근할 수 있는지 확인하십시오. Docker와 같은 환경에서 서비스를 운영 중이라면 네트워크 설정과 포트 매핑을 확인해 보세요.
  4. Spring Cloud Gateway 설정:

    • application.yml에서 spring.cloud.gateway.routes 설정의 uri 필드에는 올바르게 구성된 URI가 필요합니다. http://localhost:8081와 같이 프로토콜을 포함하여 주십시오.

유사한 문제가 논의된 몇 가지 질문/답변 공유 링크를 통해 더 많은 해결책을 찾을 수 있습니다:

각각의 링크를 통해 비슷한 문제를 해결한 사례를 참고하시고, 문제가 지속된다면 더 구체적인 코드를 공유하시거나 설정 파일의 다른 부분도 함께 점검해 보시는 걸 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Agrev님의 프로필 이미지

작성한 질문수

질문하기