Звонок на сервис через шлюз не найден - PullRequest
2 голосов
/ 04 июня 2019

Я начинаю с весеннего облака.

Я создал 3 приложения, одно для службы обнаружения, одно для шлюза и одно для службы. Я на самом деле не использую весенний облачный конфиг и какую-либо балансировку нагрузки

Для моего открытия

server.port=8761
spring.application.name=discovery-service
eureka.instance.hostname=localhost
eureka.client.registerWithEureka=false
eureka.client.fetchRegistry=false  
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

Для моего шлюза

#Port for Registry service
server.port=8080
spring.application.name=gateway-service
spring.cloud.gateway.discovery.locator.enabled=true
spring.cloud.gateway.routes[0].id=hostel-service
spring.cloud.gateway.routes[0].uri=lb://hostel-service
spring.cloud.gateway.routes[0].predicates[0]=Path=/hostels/**
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

Для моей службы общежитий

server.port=9000
spring.application.name=hostel-service
eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/

Понятно, тогда служба общежития зарегистрирована в службе обнаружения

Зарегистрированный экземпляр HOSTEL-SERVICE / 192.168.102.129: hostel-service: 9000 со статусом UP (репликация = false)

Смотрите, когда я пойду к http://localhost:8761/

Когда я пытаюсь позвонить

http://localhost:8080/hostels или же http://localhost:8080/hostel-service/hostels

Я получаю ошибку 404

Если я сделаю

http://localhost:9000/hostels

Я получаю хорошие результаты

Редактировать

код на github

https://github.com/mctdi/hostel
https://github.com/mctdi/gateway
https://github.com/mctdi/discovery

1 Ответ

2 голосов
/ 05 июня 2019

Приложение hostels регистрируется в Service Discovery, а приложение gateway - нет.Добавьте 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' к вам implementation зависимостей в build.gradle - он будет зарегистрирован в Eureka, и запрос http://localhost:8080/hostels будет перенаправлен в приложение hostels.

...