javascript
Spring cloud Loadbalance
feign原理介紹:
https://segmentfault.com/a/1190000016776471?utm_source=tag-newest
http://techblog.ppdai.com/2018/05/28/20180528/
https://blog.csdn.net/xiaofeng10330111/article/details/85682513
負(fù)載均衡策略:
隨機(jī) (Random)
隨機(jī)策略很簡單,就是從服務(wù)器中隨機(jī)選擇一個服務(wù)器
輪詢 (RoundRobin)
每個請求按時間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動剔除
加權(quán)輪詢(Weighted Round Robin)
加權(quán)本質(zhì)是一種帶優(yōu)先級的方式,加權(quán)輪詢就是一種改進(jìn)的輪詢算法,輪詢算法是權(quán)值相同的加權(quán)輪詢。需要給后端每個服務(wù)器設(shè)置不同的權(quán)值,決定分配的請求數(shù)比例。
這個算法應(yīng)用就相當(dāng)廣泛了,對于無狀態(tài)的負(fù)載場景,非常適合。
優(yōu)點解決了服務(wù)器性能不一的情況,缺點是權(quán)值需要靜態(tài)配置,無法自動調(diào)節(jié)。也不適合對長連接和命中率有要求的場景。
一致性哈希 (ConsistentHash)
介紹
一致性哈希算法(Consistent Hashing)在1997年由麻省理工學(xué)院提出的一種分布式哈希(DHT)實現(xiàn)算法,設(shè)計目標(biāo)是為了解決因特網(wǎng)中的熱點(Hot spot)問題。
哈希 (Hash)
哈希算法( hash): 將客戶端的源地址,端口進(jìn)行哈希運算,根據(jù)運算的結(jié)果轉(zhuǎn)發(fā)給一臺服務(wù)器進(jìn)行處理,當(dāng)其中某個服務(wù)器發(fā)生故障,就把其從服務(wù)器隊列中拿出,不參加下一次的用戶請求的分配,直到其恢復(fù)正常。
最小連接數(shù)LC
最小連接數(shù)(Least Connection),把請求分配給活動連接數(shù)最小的后端服務(wù)器。它通過活動來估計服務(wù)器的負(fù)載。比較智能,但需要維護(hù)后端服務(wù)器的連接列表。
加權(quán)最小連接數(shù)WLC
加權(quán)最小連接數(shù)(Weighted Least Connection),在后端服務(wù)器性能差異較大的情況下,可以優(yōu)化LC的性能,高權(quán)值的服務(wù)可以承受更多的連接負(fù)載。
最短響應(yīng)時間LRT
最短響應(yīng)時間(Least Response Time),把請求分配給平均響應(yīng)時間最短的后端服務(wù)器。平均響應(yīng)時間可以通過ping探測請求或者正常請求響應(yīng)時間獲取。
RT(Response Time)是衡量服務(wù)器負(fù)載的一個非常重要的指標(biāo)。對于響應(yīng)很慢的服務(wù)器,說明其負(fù)載一般很高了,應(yīng)該降低它的QPS。
之前有人說使用CPU占用率作為負(fù)載均衡的指標(biāo),只能說沒理解CPU占用率的實質(zhì)。理論上CPU占用率是越高越好,說明服務(wù)充分利用了CPU資源。但對于設(shè)計不合理的程序?qū)е碌腃PU占用過高這是程序的設(shè)計問題,并不違背這條理論。
總結(jié)
以上是生活随笔為你收集整理的Spring cloud Loadbalance的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7硬盘格式转换方式有哪些
- 下一篇: Spring cloud——Hystri