天天看點

伺服器端負載均衡和用戶端負載均衡的差別?一、服務端負載均衡二、用戶端負載均衡

一、服務端負載均衡

伺服器端負載均衡:例如Nginx,通過Nginx進行負載均衡,先發送請求,然後通過負載均衡算法,在多個伺服器之間選擇一個進行通路;即在伺服器端再進行負載均衡算法配置設定。

伺服器端負載均衡和用戶端負載均衡的差別?一、服務端負載均衡二、用戶端負載均衡

負載均衡是我們處理高并發、緩解網絡壓力和進行服務端擴容的重要手段之一,但是一般情況下我們所說的負載均衡通常都是指服務端負載均衡,服務端負載均衡又分為兩種,一種是硬體負載均衡,還有一種是軟體負載均衡。

硬體負載均衡主要通過在伺服器節點之間安裝專門用于負載均衡的裝置,常見的如F5。

軟體負載均衡則主要是在伺服器上安裝一些具有負載均衡功能的軟體來完成請求分發進而實作負載均衡,常見的就是Nginx。

無論是硬體負載均衡還是軟體負載均衡,它的工作原理都不外乎下面這張圖:

伺服器端負載均衡和用戶端負載均衡的差別?一、服務端負載均衡二、用戶端負載均衡

二、用戶端負載均衡

用戶端負載均衡:例如spring cloud中的ribbon,用戶端會有一個伺服器位址清單,在發送請求前通過負載均衡算法選擇一個伺服器,然後進行通路,這是用戶端負載均衡;即在用戶端就進行負載均衡算法配置設定。

伺服器端負載均衡和用戶端負載均衡的差別?一、服務端負載均衡二、用戶端負載均衡

Ribbo是一個基于HTTP和TCP的用戶端負載均衡器,當我們将Ribbon和Eureka一起使用時,Ribbon會從Eureka注冊中心去擷取服務端清單,然後進行輪詢通路以到達負載均衡的作用,用戶端負載均衡中也需要心跳機制去維護服務端清單的有效性,當然這個過程需要配合服務注冊中心一起完成

從上面的描述我們可以看出,用戶端負載均衡和服務端負載均衡最大的差別在于服務清單所存儲的位置。在用戶端負載均衡中,所有的用戶端節點都有一份自己要通路的服務端清單,這些清單統統都是從Eureka服務注冊中心擷取的。

伺服器端負載均衡和用戶端負載均衡的差別?一、服務端負載均衡二、用戶端負載均衡

繼續閱讀