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