2015-06-25 144 views
7

我想爲我的Zuul代理實現自定義過濾器。現在,我知道有很多關於該主題的討論here,並且我看了一下提供的答案,其中包括過濾器和Spring Cloud文檔的示例,我經歷了幾次。我試圖將一些過濾器內容複製到我的使用中,但它不起作用。創建自定義Zuul過濾器

我有一臺尤里卡服務器,註冊3個獨立的服務,其中一個是另外兩個服務的前門,從每個服務器收集信息並檢索它們。

我想要做的是重新路由Zuul在流程開始時收到的請求,以便通過特定服務重定向它們,使用URL參數確定哪個進程應該瞄準而不是另一個進程。 我已經創建了一個標記爲@Component註釋的過濾器,實現ZuulFilter。我不知道的是如何使重定向工作,以及使用哪些方法。

所以,問題是:如何使用URL參數將傳入請求重定向到不同的註冊服務?

回答

8

查看PreDecorationFilter,查看基於url路徑匹配路由的示例(即/myservice)。如果它匹配完整的網址,則會在功能區上下文中設置routeHost,否則它將設置serviceId(這將使用功能區進行路由)。你需要寫一些類似的參數來代替。

+0

謝謝。我現在就看看這個,回到你身邊。 – chesh

+0

我看了一下你在項目中顯示的代碼,我必須說我沒有那麼多的配置,因爲我的Zuul服務器是一個普通的具有'@ EnableZuulProxy'的Spring應用程序。我是否缺少某種配置來添加過濾器?或者我創建一個,在其上放置一個'@ Bean'註釋並運行服務器就足夠了? – chesh

+1

我向你展示的項目是源代碼,所以當然你沒有那麼多配置。是的,用@ Bean創建一個過濾器就是你需要做的。 – spencergibb