当前位置: 首页 > 工具软件 > BrowserQuest > 使用案例 >

browserquest php安装,请问一下browserquest-php项目换成GatewayWorker的形式需要怎么部署worker...

艾仲渊
2023-12-01

单进程模式用户间数据容易共享

browserquest本身就设计成单进程模式,单进程模式用户间数据容易共享,不用频繁的进程间通讯,开发简单。

改成gateway网关模式利弊

如果要改成多进程gateway网关模式,代码改动量会很大,要求开发者对于browserquest运行机制及代码结构非常熟悉。

即使开发出多进程模式,由于进程间要频繁通讯,整体性能不一定比单进程好。

拿browserquest来说

拿browserquest来说,虽然是单进程模式,但是由于游戏内没有阻塞IO,单进程估计也能支持上千人。

browserquest本身地图并不大,如果是上千人在线估计已经是满屏都是人了,支持再高的在线人数意义不大,人数继续增加的话应该去考虑增加一个browserquest服务,采用多房间(多服)的方式平摊压力。每个服单独的实例,互不影响,可以几乎无限的水平扩展。

所以就browserquest来说,单进程模式+多实例分服的方式会比较好。

非要多进程写个browserquest

假设非要突破browserquest单进程限制,可以考虑为每个地图创建一个进程,用户切换地图时,关闭原来socket链接,并重新链接连到对应的地图服务器进程。由于不同地图的人之间不会有太多的消息通讯,所以不需要太多进程间通讯,这样每个地图都可以承载上千人,那么多个地图就可以承载更多人。

这样一组browserquest进程应该比原来单进程承载更多的在线用户,如果用户量继续增加,还是老套路,开新的游戏服务器房间。

再优化

再优化可能就是把游戏拆分成更多的服务,登陆服务、接入服务、地图服务、AI服务等,然后针对每个服务做优化,多进程多服务器支持等。具体如何做与服务类型有关,得具体问题具体分析了。

我本身不是做游戏的,抛砖引玉,欢迎大家讨论

 类似资料: