客戶端負載均衡與服務端負載均衡的區別

2021-09-20 01:33:26 字數 832 閱讀 3791

服務端負載均衡       

負載均衡是我們處理高併發、緩解網路壓力和進行服務端擴容的重要手段之一,但是一般情況下我們所說的負載均衡通常都是指服務端負載均衡,服務端負載均衡又分為兩種,一種是硬體負載均衡,還有一種是軟體負載均衡。      硬體負載均衡主要通過在伺服器節點之間安裝專門用於負載均衡的裝置,常見的如f5。      軟體負載均衡則主要是在伺服器上安裝一些具有負載均衡功能的軟體來完成請求分發進而實現負載均衡,常見的就是nginx。       無論是硬體負載均衡還是軟體負載均衡都會維護乙個可用的服務端清單,然後通過心跳機制來刪除故障的服務端節點以保證清單中都是可以正常訪問的服務端節點,此時當客戶端的請求到達負載均衡伺服器時,負載均衡伺服器按照某種配置好的規則從可用服務端清單中選出一台伺服器去處理客戶端的請求。這就是服務端負載均衡。  

客戶端負載均衡      

我們在spring cloud中服務的發現與消費一文中涉及到了客戶端負載均衡,在那篇文章中我們提到 「ribbon是乙個基於http和tcp的客戶端負載均衡器,當我們將ribbon和eureka一起使用時,ribbon會從eureka註冊中心去獲取服務端列表,然後進行輪詢訪問以到達負載均衡的作用,客戶端負載均衡中也需要心跳機制去維護服務端清單的有效性,當然這個過程需要配合服務註冊中心一起完成。」       從上面的描述我們可以看出,客戶端負載均衡和服務端負載均衡最大的區別在於服務清單所儲存的位置。在客戶端負載均衡中,所有的客戶端節點都有乙份自己要訪問的服務端清單,這些清單統統都是從eureka服務註冊中心獲取的。在spring cloud中我們如果想要使用客戶端負載均衡,方法很簡單,開啟@loadbalanced註解即可,這樣客戶端在發起請求的時候會先自行選擇乙個服務端,向該服務端發起請求,從而實現負載均衡。 

客戶端負載均衡與服務端負載均衡的區別

服務端的負載均衡是乙個url先經過乙個 伺服器 這裡是nginx 然後通過這個 伺服器通過演算法 輪詢,隨機,權重等等 反向 你的服務,來完成負載均衡。而客戶端的負載均衡則是乙個請求在客戶端的時候已經通過eureka獲取了要呼叫服務的集群資訊,然後通過具體的負載均衡演算法來完成呼叫具體某個服務。簡而...

客戶端負載均衡

客戶端負載均衡就是服務端負載均衡而言的。服務端負載均衡 就是傳統的nginx的方式,用nginx做負載均衡,我們稱之為服務端負載均衡。這種負載均衡,我們稱為伺服器負載均衡,它的特點是,就是呼叫的客戶端不知道具體是哪乙個server提供的服務,他也不關心,反正請求傳送給nginx,nginx再將請求 ...

ribbon客戶端負載均衡

ribbon會儲存註冊中心應用,然後定時去更新,而不是每次都要先訪問註冊中心,再訪問應用 依賴org.springframework.cloud spring cloud starter netflix ribbon 複製 配置resttemplate bean是乙個方法級別上的註解,主要用在 co...