如何自己搭建webgame的服务器

如何自己搭建webgame的服务器,第1张

你给你的系统装个虚拟机,然后给虚拟机装个WINDOWS server 2003,在虚拟机上搭建WEBgame服务器,虚拟机用桥接的方式连接网络,这样你主机和虚拟机就组成了一个局域网,你可以在虚拟机上搭建服务器,主机来访问测试,其实也可用作外网测试的,说起来就这样简单,但是你要是没接触过虚拟机可能还是比较麻烦的,可以加我扣扣 相互交流下,尽管我不是高手,呵呵 我扣扣 八二要五四要要三 加的时候注明 webgame

所有的对象都放在内存,20万用户以下无压力。

如果游戏的用户很多,例如超过50万,内存就会不够,可使用LRU算法来淘汰一些数据。

流程:收到用户请求 - 在内存查找用户对象 - 如果不存在就从数据库中加载- 放入内存cache-如果cache中的用户超过20万 - 用LRU算法淘汰最古老的用户数据。

避免同步的IO *** 作,所有会发生写数据库的 *** 作:例如角色获得了经验,要更新数据库;这类和游戏逻辑相关、安全性要求不高的保存 *** 作,一律用异步 *** 作,由后台的数据库保存线程定期保存。

流程:如果要保存到数据库 - 检查该对象是否已有标志为在保存队列中 - 如果为假 - 将对象放入保存队列。 后台保存线程的流程:从队列中获取要保存的对象 - 保存 - 置保存标志位为假。

内存cache + 异步保存模式,并发 每秒1000+ 不会有任何压力,而且正常情况下每个请求的处理时间不会超过50毫秒。

邮件 *** 作一定产生大量IO *** 作,而且都是同步 *** 作,可用上面的cache机制处理,或者专门的邮件服务器。

如果是DNF之类的格斗类游戏,因为对系统响应的时间要求特别高,50毫秒都嫌慢,这种情况下,瓶颈是在网络上,可用UDP包来解决。搜索UDP,有大量文档。

如果用户数是海量的,例如超过500万,或者对并发的要求更高,例如每秒5000+次请求,这种指标明显超过了单机的处理能力,这个时候就必须采用分布式结构,使用多台服务器。可参照EJB二次远程调用的原理实现多机分布式结构,搜索EJB,也有大量文档。

没事不要用c或者c++写游戏服务器端,c#和java这类历史悠久、有大量工具包、程序员一抓一大把的语言最好。性能不是问题,少BUG、稳定、开发周期短才是最重要的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10557375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存