后宫佳丽三千,假如古代皇帝也懂负载均衡算法...
古代皇帝,后宮佳麗三千,沒法做到雨露均沾,但為了繁衍后代,子嗣繁盛,弱水三千,只取一瓢飲顯然是不行的。不同的朝代有不同的寵幸妃子的方法,著名的有羊車望幸、擲篩侍寢、翻牌懸燈等等。如果皇帝懂得負載均衡算法的話,就大可不必這么折騰了!
討論負載均衡,那么歸根結底其要解決的問題是什么?當一臺服務器的承受能力達到上限時,那么就需要多臺服務器來組成集群,提升應用整體的吞吐量,那么這個時候就涉及到如何合理分配客戶端請求到集群中不同的機器,這個過程就叫做負載均衡,當然這也是負載均衡要解決的問題。
按實現方式,可以分為硬件負載均衡(如 F5 、A10)、軟件負載均衡(如 LVS、Nginx、HAProxy)、DNS 負載均衡。軟件負載均衡又分四層和七層負載均衡,四層負載均衡就是在網絡層利用 IP 地址端口進行請求的轉發,基本上就是起個轉發分配作用。而七層負載均衡就是可以根據訪問用戶的 HTTP 請求頭、URL 信息將請求轉發到特定的主機。LVS 為四層負載均衡。Nginx、HAProxy 可四可七。
除了專用硬件和 Nginx 這種專業軟件提供負載均衡外,在代碼中直接實現也是種常見的方式。比如使用 Memcached 集群時通常會在 client 中采用 hash 取模或者一致性哈希來使數據均勻分布。
在分布式系統中,多臺服務器同時提供一個服務,并統一到服務配置中心進行管理。消費者通過查詢服務配置中心,獲取到服務到地址列表,需要選取其中一臺來發起RPC遠程調用。如何選擇,則取決于具體的負載均衡算法,對應于不同的場景,選擇的負載均衡算法也不盡相同。負載均衡算法的種類有很多種,常見的負載均衡算法包括輪詢法、隨機法、源地址哈希法、加權輪詢法、加權隨機法、最小連接法等,應根據具體的使用場景選取對應的算法。
2月2日~4日晚八點,架構師Tony老師將開啟全新訓練營《.Net5+負載均衡算法實戰?》,Tony老師在JD、藝龍等知名互聯網企業擁有過豐富的高并發、高可用實戰經驗,此次課程,案例全部來自于企業實戰場景,耗時兩周研發,全網首發!本號粉絲,一律免費學習,內容很干,趕快搶占名額!!!
長按掃碼,免費入群學習
如遇掃碼失敗,請添加下方微信
微信號:ruanmou_xy
10000分鐘學習資料免費領
感謝大家長期以來的支持與關注!年底了,給大家送一波超級福利,掃下方二維碼入群即可獲取超10000分鐘全套學習資料。此視頻合集涵蓋.Net5,技術架構和系統架構技術棧全面講解,能夠快速提升架構思維能力。
長按掃碼,免費入群學習
如遇掃碼失敗,請添加下方微信
微信號:ruanmou_xy
總結
以上是生活随笔為你收集整理的后宫佳丽三千,假如古代皇帝也懂负载均衡算法...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅析 record 使用场景
- 下一篇: Code Runner for VS C