Я начинаю с весеннего облака.
Я создал 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