項(xiàng)目部署環(huán)境:
GatewayWorker + register 部署在Linux系統(tǒng)下,以支持10w+用戶連接
BusinessWorker 部署在windows下,因?yàn)轫?xiàng)目部署在windows系統(tǒng)中
項(xiàng)目運(yùn)行一直正常,部分業(yè)務(wù)運(yùn)行時(shí)間太長,所以利用workerman異步多進(jìn)程功能,php項(xiàng)目作為客戶端,連接上GatewayWorker后,發(fā)送消息通知Gateway執(zhí)行異步任務(wù),然后就經(jīng)常提示這個(gè)超過最大連接數(shù)256,現(xiàn)在是不清楚是異步進(jìn)程導(dǎo)致的嗎?為什么呢
感覺是異步任務(wù)建立異步連接導(dǎo)致的。
如果BusinessWorker不需要得到異步任務(wù)結(jié)果,workerman一端在收到異步任務(wù)可以先執(zhí)行關(guān)閉連接,然后再執(zhí)行異步任務(wù),這樣能讓連接盡快斷開,而不是等到異步任務(wù)完成后才斷開,感覺能減少連接數(shù)。
workerman在win下無法設(shè)置count從而設(shè)置多進(jìn)程吧,BusinessWorker服務(wù)器為什么不使用linux系統(tǒng)呢?如果使用linux系統(tǒng),就不會(huì)有win的256個(gè)連接限制了啊
就是目前公司所有項(xiàng)目都是部署在windows系統(tǒng)下,本來一開始就是用windwos版,但是最多只能支持256個(gè)長鏈接,這是不現(xiàn)實(shí)的,所以就把gatewayworker 采用分離式部署,部署在Linux下,這樣就能保證至少10w+的客戶連接沒有問題。BusinessWorker只能部署在項(xiàng)目運(yùn)行環(huán)境中,所以在window下
現(xiàn)在我不明白,提示超過最大連接256是指誰超過了,如果是客戶端,那也不可能,客戶端只會(huì)發(fā)一次通知,告訴wokerman執(zhí)行異步任務(wù)啊,倒是workerman收到通知后,會(huì)for循環(huán),去建立異步進(jìn)程,執(zhí)行每個(gè)需要執(zhí)行的任務(wù)。如果是異步進(jìn)程導(dǎo)致,那該怎么辦呢