Я столкнулся со странным поведением нашего Zuul-Proxy в нашем Microservice-Project. Моя установка состоит из Discovery-Service (Eureka), API-Gateway (Zuul) и двух микросервисов «A» и «B». После запуска установки через "localhost: 10000 / routes" отображаются следующие маршруты:
{
"/api-gateway/**": "api-gateway",
"/a-service/**": "a-service",
"/b-service/**": "b-service"
}
Моя конфигурация Zuul выглядит так:
zuul:
ignored-services: ''
add-proxy-headers: true
sensitiveHeaders: 'Cookie,Set-Cookie'
Теперь я получаю доступ к службам через шлюз и делаю несколько вызовов REST:
http://localhost:10000/a-service/sayHello -> ОК
http://localhost:10000/b-service/sayBye -> ОК
http://localhost:10000/a-service/sayHello -> ОШИБКА 404
Я вижу, что последний запрос по ошибке направлен в службу B, хотя я использую маршрут «/ a-service / **». Как такое могло случиться? Второй REST-вызов службы B как-то переписал маршрутизацию?
Однако «localhost: 10000 / routes» по-прежнему возвращает то же, что и выше. Это также работает с вызовом служб в обратном порядке B-A-B -> 404 и ошибочно направленным на службу A.
Вы можете загрузить минимальный проект с 4 компонентами, которые позволят вам легко воспроизвести это поведение здесь: https://github.com/Netflix/zuul/files/827817/MinimalZuulRouteBugProject.zip
Спасибо за любую информацию по этому вопросу.