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

 

初賽:《自適應負載均衡的設計實現》

賽題背景java

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

算法

要求
修改題目提供的擴展接口(UserLoadBalance),實現一套自適應負載均衡機制。要求可以具有如下能力:
一、Gateway(Consumer) 端可以自動根據服務處理能力變化動態最優化分配請求保證較低響應時間,較高吞吐量;
二、Provider 端能自動進行服務容量評估,當請求數量超過服務能力時,容許拒絕部分請求,以保證服務不過載;
三、當請求速率高於全部的 Provider 服務能力之和時,容許 Gateway( Consumer ) 拒絕服務新到請求。服務器

 

評測app

enter image description here
一、PTS 做爲壓測請求客戶端向 Gateway(Consumer) 發起 HTTP 請求,Gateway(Consumer) 加載用戶實現的負載均衡算法選擇一個 Provider,Provider 處理請求,返回結果。
二、每一個 Provider 的服務能力(處理請求的速率)都會動態變化:負載均衡

  • 三個 Provider 的總處理能力會分別在小於/約等於/大於請求量三個狀態變更;
  • 三個 Provider 任意一個的處理能力都小於總請求量。

三、評測分爲預熱和正式評測兩部分,預熱部分不計算成績,正式評測部分計算成績。
四、正式評測階段,PTS 以固定鏈接數(1024) 向 Gateway 發送請求,1分鐘後中止;
五、以 PTS 統計的成功請求數和最大 TPS 做爲排名依據。成功請求數越大,排名越靠前。成功數相同的狀況下,按照最大 TPS 排名。分佈式

排名示例:ide

名次 成功請求數 最大 TPS
1 1,000,000 9,999
2 1,000,000 9,998
3 800,000 10,000

 

特別說明
一、因爲初賽選手衆多,每支參賽隊伍天天給予 5 次評測機會,請珍惜使用;
二、請務必在本地驗證經過之後再提交評測,除評測環境形成的跑分失敗外,其他狀況均視爲機會已被使用;
三、除環境因素外,恕不能提供針對具體實現的排錯支持。性能

賽題詳細說明
賽題組將進行持續更新,請點擊連接:
https://code.aliyun.com/middlewarerace2019/adaptive-loadbalance優化

 

複賽:《實現一個進程內基於隊列的消息持久化存儲引擎》

賽題背景
Apache RocketMQ做爲的一款分佈式的消息中間件,歷年雙十一承載了萬億級的消息流轉,爲業務方提供高性能低延遲的穩定可靠的消息服務。隨着業務的逐步發展和雲上的輸出,各類依賴消息做爲輸入輸出的流計算場景層出不窮,這些都給RocketMQ帶來了新的挑戰。請實現一個進程內消息持久化存儲引擎,可支持簡單的聚合計算,如指定時間窗口的內對於消息屬性某些字段的求和、求平均等。spa

要求
實現一個進程內消息持久化存儲引擎,要求包含如下功能:

  • 發送消息功能
  • 根據必定的條件作查詢或聚合計算,包括

A. 查詢必定時間窗口內的消息
B. 對必定時間窗口內的消息屬性某個字段求平均,以及求和

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

消息內容簡化成兩個字段,一個是業務字段a(整數),一個是時間戳(long)。實際存儲格式用戶本身定義,只要能實現對應的讀寫接口就好。

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

 

https://tianchi.aliyun.com/competition/entrance/231714/information

 

https://code.aliyun.com/middlewarerace2019/adaptive-loadbalance

相關文章
相關標籤/搜索