淺談負載均衡的分類

剛畢業的時候,接觸到正式的項目,頭一次聽說負載是做一個接口,外圍系統提供的是負載地址,那時對於負載的概念並不清晰,後來網上查閱的一些資料,大概對負載的作用有了一些瞭解。對於剛剛提到的那個接口,解釋起來就是請求負載服務器地址,然後通過負載均衡器(比如最常見的F5這些商業的負載均衡器)將請求轉發到單機服務器上。

18年開始接觸做微服務的項目,第一次聽說使用nginx可以做到負載均衡,還蒙了一下,因爲在我的潛意識裏,實現負載均衡的都是那些負載均衡器硬件設備,使用nginx實現負載均衡還是頭一次聽說,後續又接觸到了Ribbon等等。然後就分析了一下負載均衡的實現方式。

負載均衡主要是通過一系列的算法,將請求分發到不同的服務器上,以減輕每臺服務器的壓力。

常用的負載均衡算法有:輪詢、隨機、加權輪詢、加權隨機、最小鏈接法、原地址哈希等方法。

 按照設備分類

又分爲軟件負載均衡和硬件負載均衡。

 硬件例如F5、Array、Netscaler等等硬件負載均衡器,這些硬件設施有專門的公司去維護,性能也是槓槓的,且不需要我們程序員去踩坑,最大的缺點就是貴!只要公司有錢,買它!

 軟件方面接觸最多的要數nginx、ribbon、fegin這些了,實際上fegin是內嵌了ribbion,這些軟件用起來也是非常的方便,開源的,免費的,但是這些東西用起來就需要我們自己去踩坑了,難~

按照技術分類

又分爲服務端負載均衡和客戶端負載均衡【顧名思義,就是負載是在服務端進行的還是客戶端進行的】

服務端:常見技術有Nginx、HAProxy、LVS。各個之間的優缺點可以參考https://www.cnblogs.com/ahang/p/5799065.html

客戶端:常見的技術有Ribbion

 

實際上硬件負載均衡器、服務端負載均衡器和客戶端負載均衡是可以同時使用的,我之前做過的一個項目,買的F5做硬件服務器,前端發起請求時通過nginx做反向代理也實現了負載均衡,同時後端使用的是SpringCloud,Eruake、Ribbon實現了客戶端的負載均衡,由於項目併發量不大,在使用上並未發現有多大的性能優勢,不過總歸是用到了這些東西,也容得我慢慢去鑽研一下。

下一篇文章我們分析一下負載均衡的算法吧~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章