로드 밸런서에 xxx-service 서비스에 대한 인스턴스가 포함되어 있지 않습니다.

문제 설명:

Nacos+SpringBoot+OpenFeign을 사용하여 프로젝트를 빌드할 때 Nacos는 등록 센터 및 구성 센터 역할을 합니다. 애플리케이션이 Nacos에 성공적으로 등록되었지만 서비스 소비자가 OpenFeign을 통해 서비스를 호출하면 오류가 보고됩니다 Load balancer does not contain an instance for the service xxx-service. 해결책은 다음과 같습니다.

1. 마이크로서비스 애플리케이션 이름을 확인하세요.

  • application.name의 대소문자가 일치하는지 확인하세요(nacos는 대소문자를 더 구분하므로 소문자를 동일하게 사용하는 것이 가장 좋습니다).
  • "_" 밑줄은 대시 "-"로 변경됩니다. 예: cloud_pay가 cloud-pay로 변경됩니다(그렇지 않으면 오류가 보고될 수 있음 java.lang.IllegalStateException: Service id not legal hostname) .
#参考:
spring:
  application:
    name: cloud-payment #微服务应用的名字

2. @FeignClient 주석을 확인하세요.

@FeignClient 주석 값의 값 구성이 nacos에 표시되는 서비스 이름과 일치하는지 확인합니다(대소문자도 일치해야 함).

@FeignClient(value = "cloud-payment",fallback = PaymentFallbackService.class)

여기에 이미지 설명을 삽입하세요.

3. SpringBoot, SpringCloud, Spring Cloud Alibaba 및 Nacos 버전을 확인하세요.

SpringBoot, SpringCloud, Spring Cloud Alibaba, Nacos 버전을 함께 사용하고 있는지 확인해보세요 버전에 따라 환경 문제가 자주 발생하는 것으로 알고 있습니다.

처리하려면 SpringBoot, SpringCloud 및 Spring Cloud Alibaba 버전 비교표(상세하고 정확함)를 참조하세요 .

4. 공통 네임스페이스 및 그룹의 마이크로서비스

5. 구성 수정

퓨즈가 켜져 있으면 버전을 확인할 수 있습니다.

springcloud2020 이전 버전의 경우 구성은 다음과 같습니다.

feign:
  hystrix:
    enable: true

또는

feign.hystrix.enabled=true

springcloud2020 이상 버전의 경우 구성은 다음과 같습니다.

feign:
  circuitbreaker:
    enabled: true

또는

feign.circuitbreaker.enabled=true

구성을 수정한 후 서비스를 다시 시작합니다.

좋아요, 그게 다입니다. 문제가 해결되기를 바랍니다. 그래도 해결되지 않을 경우 먼저 서비스 제공자에게 별도로 전화를 걸어 문제가 없는지, 등록센터에 성공적으로 주입이 가능한지 확인한 후 발신자를 의심한 후 통화 진행하시면 됩니다.

여기에 이미지 설명을 삽입하세요.

Supongo que te gusta

Origin blog.csdn.net/weixin_47061482/article/details/131708340
Recomendado
Clasificación