2016-11-04 72 views
0

我們運行JHipster微服務架構,使用consul進行服務發現。我們有一個微型服務連接到一個mongodb的docker實例。使用stock angular ui進行測試以保存新實體時,我們發現禁用數據庫不會在UI中引發錯誤。從總領事,我可以看到,當我重新啓用數據庫時,該服務沒有通過2次健康檢查中的1次,這些檢查將再次通過。當微服務失敗時,JHipster不會向UI發送錯誤

在網關的日誌,我有以下幾點: Caused by: com.netflix.client.ClientException: Load balancer does not have available server for client: import

我認爲領事是拒絕提供給網關服務,但它似乎應該有某種方式來配置網關如何處理請求不可用服務。任何人都可以告訴我在哪裏尋找這個?

回答

1

這是正常現象。網關只會將請求路由到通過所有領事健康檢查的服務。

請注意,默認情況下,Spring Boot會自動爲您的數據庫配置一個healtcheck。它位於您的微服務的/ management/health端點。

您可以使用微服務的spring.cloud.consul項來配置領事健康檢查。我不記得具體的,但如果你使用IDEA它會自動完成可用的屬性...

+0

謝謝你的迴應皮埃爾。我正在嘗試確定如何處理請求的服務不可用的情況。默認情況下,即使請求尚未實現,網關也會將200返回到UI。我希望發回一個迴應,指出該服務不可用,但我不知道該在哪裏設置。 – thejames42

+0

@ thejames42這是由Hystrix自動「打開電路」造成的,因此會響應200。這可以根據您的需求進行定製。例如,請參閱:https://www.google.fr/amp/s/jmnarloch.wordpress.com/2015/09/16/spring-cloud-zuul-error-handling/amp/?client=ms-android-oneplus –

+0

不知道如何將此標記爲答案,因此標記父項。謝謝! – thejames42

相關問題