browserquest php安装,请问一下browserquest-php项目换成GatewayWorker的形式需要怎么部署worker...
單進程模式用戶間數據容易共享
browserquest本身就設計成單進程模式,單進程模式用戶間數據容易共享,不用頻繁的進程間通訊,開發簡單。
改成gateway網關模式利弊
如果要改成多進程gateway網關模式,代碼改動量會很大,要求開發者對于browserquest運行機制及代碼結構非常熟悉。
即使開發出多進程模式,由于進程間要頻繁通訊,整體性能不一定比單進程好。
拿browserquest來說
拿browserquest來說,雖然是單進程模式,但是由于游戲內沒有阻塞IO,單進程估計也能支持上千人。
browserquest本身地圖并不大,如果是上千人在線估計已經是滿屏都是人了,支持再高的在線人數意義不大,人數繼續增加的話應該去考慮增加一個browserquest服務,采用多房間(多服)的方式平攤壓力。每個服單獨的實例,互不影響,可以幾乎無限的水平擴展。
所以就browserquest來說,單進程模式+多實例分服的方式會比較好。
非要多進程寫個browserquest
假設非要突破browserquest單進程限制,可以考慮為每個地圖創建一個進程,用戶切換地圖時,關閉原來socket鏈接,并重新鏈接連到對應的地圖服務器進程。由于不同地圖的人之間不會有太多的消息通訊,所以不需要太多進程間通訊,這樣每個地圖都可以承載上千人,那么多個地圖就可以承載更多人。
這樣一組browserquest進程應該比原來單進程承載更多的在線用戶,如果用戶量繼續增加,還是老套路,開新的游戲服務器房間。
再優化
再優化可能就是把游戲拆分成更多的服務,登陸服務、接入服務、地圖服務、AI服務等,然后針對每個服務做優化,多進程多服務器支持等。具體如何做與服務類型有關,得具體問題具體分析了。
我本身不是做游戲的,拋磚引玉,歡迎大家討論
總結
以上是生活随笔為你收集整理的browserquest php安装,请问一下browserquest-php项目换成GatewayWorker的形式需要怎么部署worker...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电影搏击俱乐部深度解析(影评一部探讨存在
- 下一篇: php access allow,PHP