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