Я использую весенние облачные kubernetes с весенней загрузкой и необходимыми требованиями RBAC, необходимыми для проекта.
<!-- kubernetes -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-kubernetes</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-kubernetes-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-kubernetes-ribbon</artifactId>
</dependency>
У меня в микрорайоне работает 2 микросервиса
my-service
some-service
my-service
работает с весенней загрузкой 2.x, а some-service
работает с весенней загрузкой 1.x. Обе службы предоставляются через Kubernetes Service
и с соответствующими конечными точками.
выдержка из application.yaml
для my-service
, как показано ниже.
some-service:
url: http://some-service:8080
serviceName: some-service
И используемый FeignClient такой же, как показано ниже.
//FeignClient(url = "${some-service.url}") // does not work either
@FeignClient(value = "${some-service.serviceName}")
@RequestMapping("/api")
public interface SomeServiceClient {
Также я сделал spring.cloud.kubernetes.discovery.enabled=false
С этим положением я ожидаю, что my-service
сможет общаться с some-service
через обнаружение службы kubernetes, но я получаю эту ошибку.
ERROR c.b.d.m.s.c.MatchCoordinator - error=FeignException: status 404 reading SomeServiceClient#get(Test
ion,Output) stacktrace=feign.FeignException: status 404 reading SomeServiceClient#get
Я не могу понять, что я делаю неправильно. Кроме того, у меня не установлено значение spring.application.name для some-service
, поскольку это сторонний сервис.
Может кто-нибудь, пожалуйста, помогите. Кроме того, к сведению, что службы работают должным образом с переадресацией портов и при доступе через Ingress.