如需轉(zhuǎn)載請留言。
題目如下:
有一個消息隊列集群,集群里每臺Broker的響應(yīng)時間RT都不一樣,但是每臺Broker的極限服務(wù)QPS都是一樣的,超過這個QPS會出現(xiàn)過載雪崩。而消息的生產(chǎn)者客戶端,每次發(fā)送都會選擇其中的一臺broker來發(fā)送,一般來說發(fā)送邏輯是運行在一個線程池里面。假設(shè)cpu資源充足,通過實現(xiàn)一個負(fù)載均衡算法,使得生產(chǎn)者能夠達(dá)到最大吞吐量,最優(yōu)的平均響應(yīng)時間,但是又不能把任何一臺服務(wù)器壓垮。已知每個broker的rt、極限qps,消息生產(chǎn)者的線程數(shù)量,請求總數(shù),如果采用吞吐量最優(yōu)的算法,求處理完所有請求需要的耗時,單位毫秒。
概念說明:
QPS:query per second, 每秒請求量
RT:response time,請求的響應(yīng)時間
Broker:消息隊列的服務(wù)器
= maxQps= String[] rtList = in.nextLine().split("," requestNum = threadNum =
doneTime( maxQps,String[] rtList, requestNum,
0
編譯器版本: Java 1.8.0_66 請使用標(biāo)準(zhǔn)輸入輸出(System.in,
延伸閱讀
學(xué)習(xí)是年輕人改變自己的最好方式