測(cè)試了hello world輸出的最簡(jiǎn)程序,啟動(dòng)一個(gè)http worker的端口監(jiān)聽后,tps能達(dá)到1W左右,覺得很滿意。
?
但是把簡(jiǎn)單的echo換成一個(gè)第三方網(wǎng)絡(luò)接口的調(diào)用之后,并發(fā)量下降到幾十。4核8G的機(jī)器,我使用其它rpc框架還能實(shí)現(xiàn)橫向擴(kuò)展,總體tps能保證在300左右。但使用workerman之后,請(qǐng)問如何才能保證業(yè)務(wù)代碼中有請(qǐng)求第三方接口的情況,還能維持一定高效的并發(fā)表現(xiàn)呢?
workerman也可以橫向擴(kuò)展啊。
?
不過,如果瓶頸在第三方接口,你這邊怎么擴(kuò)展都沒用。
你好。當(dāng)然,這個(gè)例子中,整理擴(kuò)展并發(fā)能力上限是在第三方接口的處理能力。只是現(xiàn)在的情況是,至少我可以確人該外部接口并發(fā)在300以上。目前突然從1W掉到了幾十,是不太能夠理解的。
1w掉到幾十很好理解,比如你開了10個(gè)進(jìn)程,沒有調(diào)用第三方接口tps可以達(dá)到1w。每個(gè)進(jìn)程每秒可以處理1000個(gè)請(qǐng)求。但是調(diào)用了第三方接口后,假設(shè)第三方接口請(qǐng)求響應(yīng)耗時(shí)0.2秒,那么每個(gè)進(jìn)程每秒tps只有5,總tps 瞬間掉到50,這是很好理解的事情。
這種情況下應(yīng)該多開進(jìn)程或者加服務(wù)器才能提高tps。