軟體開發中的負載均衡

2022-08-24 12:00:11 字數 832 閱讀 4347

目錄集群是軟體的橫向擴充套件,找幫手

分布式是軟體的縱向擴充套件,分階段

實際場景是:分布式+集群

集群可以實現高可用、負載均衡、提公升單台計算機的cpu計算能力

高可用集群:集群中節點失效,熱切換到可用節點

高cpu消耗集群:集群中節點並行消耗cpu資源,最終彙總各節點計算結果,同大資料處理思路

負載均衡集群:集群中按需分配各節點的訪問頻率

使用負載均衡演算法保證機器的負載合理

健康檢查:檢查下游服務是否可用以及服務健康情況(ping三層,tcp/udp四層,http七層,ftp,dns等),剔除不健康服務的祖籍

會話保持:保證會話的原子性,一般使用會話共享(基於檔案cookie、基於記憶體cookie、cookie禁用時隱藏域放置session-id)

快取靜態資源,減少後台資源消耗

通過dns網域名稱解析進行負載均衡(非真正意義的負載),乙個網域名稱對應多個ip(尋找最近的ip),可以把網域名稱解析到不同ip的機器,可使用dig檢視網域名稱解析結果

通過鏈路層(二層)解析進行負載均衡,後台服務設定相同的虛擬ip,通過指定mac的方式訪問後台服務

通過傳輸層(四層)tcp/udp進行負載均衡,通過指定ip的方式訪問後台服務,haproxy、ipvs、f5等

通過應用層(七層)http/https/ws,三次握手後,通過解析應用層內容資料資訊進行負載, nginx、haproxy等

如果服務不是基於應用層,那麼只能用四層以下的負載均衡方法

七層的方式使用起來最靈活、安全性也高、

軟體負載均衡

硬體負載均衡效能優越,功能全面,但是 昂貴,一般適合初期或者土豪級公司長期使用。因此軟體負載均衡在網際網路領域大量使用。常用的軟體負載均衡軟體有nginx,lvs,haproxy等。本文參考大量文件,部分為直接拷貝,參考出處見負載均衡詳解 4 ngnix是一款輕量級的web伺服器 反向 伺服器,工作...

軟體開發中的併發

併發作用 1.在互動式應用中,快速響應使用者的請求,提高感知響應的時間 2.充分利用硬體資源,計算資源 3.簡化應用設計 併發壞處 1.難於測試 2.併發應用執行在複雜的環境下,軟體不確定性增多 3.處理同步,通訊的問題,增加程式設計複雜性 4.併發開銷對效能的影響,包括上下文環境切換,同步等 併發...

軟體開發中的「格調」

在三年之前,我從學校畢業,進入公司,正式開始了軟體開發工作。我從完成第乙個開發任務的過程中學到了很多東西,包括 1 編寫程式只是軟體開發中的乙個流程,並非全部 2 程式編寫需要遵循一定的規範,遠遠不只是實現功能那麼簡單 3 程式編寫者是程式的第一負責人,要對自己的程式進行充分的自測,而非只要程式編寫...