1. 程式人生 > >Ribbon 與 Nginx 區別

Ribbon 與 Nginx 區別

伺服器端負載均衡 Nginx

nginx 是客戶端所有請求統一交給 nginx,由 nginx 進行實現負載均衡請求轉發,屬於伺服器端負載均衡。

既請求由 nginx 伺服器端進行轉發。

客戶端負載均衡 Ribbon

Ribbon 是從 eureka 註冊中心伺服器端上獲取服務註冊資訊列表,快取到本地,然後在本地實現輪詢負載均衡策略。

既在客戶端實現負載均衡。

** 應用場景的區別:**

Nginx 適合於伺服器端實現負載均衡 比如 Tomcat ,Ribbon 適合與在微服務中 RPC 遠端呼叫實現本地服務負載均衡,比如 Dubbo、SpringCloud 中都是採用本地負載均衡。

補充:ribbon和feign的區別(轉)

spring cloud的Netflix中提供了兩個元件實現軟負載均衡呼叫:ribbon和feign。

Ribbon
是一個基於 HTTP 和 TCP 客戶端的負載均衡器
它可以在客戶端配置 ribbonServerList(服務端列表),然後輪詢請求以實現均衡負載。

Feign
Spring Cloud Netflix 的微服務都是以 HTTP 介面的形式暴露的,所以可以用 Apache 的 HttpClient 或 Spring 的 RestTemplate 去呼叫,而 Feign 是一個使用起來更加方便的 HTTP 客戶端,使用起來就像是呼叫自身工程的方法,而感覺不到是呼叫遠端方法。

注意:spring-cloud-starter-feign 裡面已經包含了 spring-cloud-starter-ribbon(Feign 中也使用了 Ribbon)