Zuul 和 feign的區別
zuul 和 feign都集成了ribbon和hystrix, 都能實現遠程訪問
一般來說zuul的定位是網關,網關的作用是請求路由,相當於你服務的入口。然后根據請求的url不同轉發到不同的服務中去。就像nginx的反向代理。
feign則更像是一個請求接口的客戶端。就像定義得一樣, Spring Cloud 中使用 Feign,可以做到使用 HTTP 請求訪問遠程服務,就像調用本地方法一樣的,開發者完全感知不到這是在調用遠程方法,更感知不到在訪問 HTTP 請求。代替了我們自己寫的httpclient請求。
-
zuul
作為整個應用的流量入口,接收所有的請求,如app、網頁等,並且將不同的請求轉發至不同的處理微服務模塊,其作用可視為nginx。 -
feign
則是將當前微服務的部分服務接口暴露出來,並且主要用於各個微服務之間的服務調用。兩者的應用層次以及原理均不相同。
feign注重調用的結果。zuul注重請求轉發的效率。