自適應負載均衡的設計實現

2022-01-23 10:22:17 字數 1621 閱讀 2127

賽題背景

負載均衡是大規模計算機系統中的乙個基礎問題。靈活的負載均衡演算法可以將請求合理地分配到負載較少的伺服器上。理想狀態下,乙個負載均衡演算法應該能夠最小化服務響應時間(rtt),使系統吞吐量最高,保持高效能服務能力。自適應負載均衡是指無論處在空閒、穩定還是繁忙狀態,負載均衡演算法都會自動評估系統的服務能力,更好的進行流量分配,使整個系統始終保持較好的效能,不產生飢餓或者過載、宕機。

要求修改題目提供的擴充套件介面(userloadbalance),實現一套自適應負載均衡機制。要求能夠具備以下能力:

1、gateway(consumer) 端能夠自動根據服務處理能力變化動態最優化分配請求保證較低響應時間,較高吞吐量;

2、provider 端能自動進行服務容量評估,當請求數量超過服務能力時,允許拒絕部分請求,以保證服務不過載;

3、當請求速率高於所有的 provider 服務能力之和時,允許 gateway( consumer ) 拒絕服務新到請求。

評測

1、pts 作為壓測請求客戶端向 gateway(consumer) 發起 http 請求,gateway(consumer) 載入使用者實現的負載均衡演算法選擇乙個 provider,provider 處理請求,返回結果。

2、每個 provider 的服務能力(處理請求的速率)都會動態變化:

3、評測分為預熱和正式評測兩部分,預熱部分不計算成績,正式評測部分計算成績。

4、正式評測階段,pts 以固定連線數(1024) 向 gateway 傳送請求,1分鐘後停止;

5、以 pts 統計的成功請求數和最大 tps 作為排名依據。成功請求數越大,排名越靠前。成功數相同的情況下,按照最大 tps 排名。

排名示例:

成功請求數

最大 tps

11,000,000

9,999

21,000,000

9,998

3800,000

10,000

特別說明

1、由於初賽選手眾多,每支參賽隊伍每天給予 5 次評測機會,請珍惜使用;

2、請務必在本地驗證通過以後再提交評測,除評測環境造成的跑分失敗外,其餘情況均視為機會已被使用;

3、除環境因素外,恕不能提供針對具體實現的排錯支援。

賽題詳細說明

賽題背景

apache rocketmq作為的一款分布式的訊息中介軟體,歷年雙十一承載了萬億級的訊息流轉,為業務方提供高效能低延遲的穩定可靠的訊息服務。隨著業務的逐步發展和雲上的輸出,各種依賴訊息作為輸入輸出的流計算場景層出不窮,這些都給rocketmq帶來了新的挑戰。請實現乙個程序內訊息持久化儲存引擎,可支援簡單的聚合計算,如指定時間視窗的內對於訊息屬性某些欄位的求和、求平均等。

要求實現乙個程序內訊息持久化儲存引擎,要求包含以下功能:

a. 查詢一定時間視窗內的訊息

b. 對一定時間視窗內的訊息屬性某個字段求平均,以及求和

例子:t表示時間,時間視窗(1000, 1002)表示: t>1000 & t<1002

訊息內容簡化成兩個字段,乙個是業務欄位a(整數),乙個是時間戳(long)。實際儲存格式使用者自己定義,只要能實現對應的讀寫介面就好。

詳細內容將於複賽之前更新

負載均衡的實現

什麼是負載均衡 負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬 增加吞吐量 加強網路資料處理能力 提高網路的靈活性和可用性。負載均衡 load balance 其意思就是分攤到多個操作單元上進行執行,例如web伺服器 ftp伺服器 企業關鍵應用伺服器和其...

Varnish 負載均衡的實現

步驟一 開啟ll3快照,設定ip,主機名,yum源 準備將server4作為第二個web伺服器 這一步在上篇已經詳細介紹,在此省略 步驟二 將server4也作為乙個後端web伺服器 也就是在server4上面搭建乙個web伺服器 檢測一下 curl localhost 步驟三 在server1 伺...

dubbo的負載均衡實現

方法名 作用用法 randomloadbalance 隨機負載均衡 語法 random預設的 roundrobinloadbalance 輪詢策略 語法 roundrobin consistenthashloadbalance 一致性hash演算法 將消費者與服務提供者繫結 語法 consisten...