我在我們的微服務項目中遇到了Zuul-Proxy的奇怪行爲。我的安裝包含發現服務(Eureka),API網關(Zuul)和兩個微服務「A」&「B」。 開始安裝後,下列途徑是通過顯示「本地主機:10000 /路線」:Zuul似乎在REST調用後重寫路由
{
"/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 - > ERROR 404
我可以看到,最後一個請求被錯誤地路由到服務B,即使我使用「/ A-服務/ **」的路線。這怎麼會發生?服務B的第二次REST呼叫是否以某種方式重寫了路由?
但是「localhost:10000/routes」仍然返回與上面相同的內容。這也與在相反的順序BAB調用服務工程 - > 404,並錯誤地路由到服務A.
你可以下載一個最小的項目,4個部件,這應該讓你輕鬆地複製這種行爲在這裏: https://github.com/Netflix/zuul/files/827817/MinimalZuulRouteBugProject.zip
謝謝你對這個問題的任何見解。從spencergibb @github