Daily Archive for August 29th, 2010

轻松实现可伸缩性,容错性,和负 载平衡的大规模多人在线系统

本文以我的OpenPoker项目为例介绍另一种构建大规模多人在线系统的方案。OpenPoker是一个大型多人扑克网游,内建支持了容错能力,负载平衡和无限制的规模大小。OpenPoker的源代码遵循GPL协议可以从我的网站下载,大约包含一万行代码,有三分之一是用来测试的。

在Openpoker最终版出台之前,我花了很大精力设计参考,尝试过Delphi, Python, C#,C/C++还有Scheme。我甚至还用Common Lisp完成了一个可运行的Poker引擎。虽然我花了9个多月研究设计,最终代码编写却只用了6个星期,这最后的高效率要归功于选择了Erlang作为编写平台。

根据比较,老版本的OpenPoker需要4~5个人的小组9个月时间完成。原班人马还另外完成了一个Windows版的客户端,就算把这个开发时间的一半(1个半月)算进去,也比预期的18个月少得多,就当今游戏开发的客观环境,如此可观的时间节省不可小看!
Continue reading ‘轻松实现可伸缩性,容错性,和负 载平衡的大规模多人在线系统’

Share

Facebook后台技术探秘

今天我们一起来了解Facebook背后的软件,看看作为当今世界上访问量最大的网站之一,Facebook是如何保证5亿用户的系统一直稳定可靠的运行。

Facebook的扩展性挑战

在我们讨论细节之前,这里有一些Facebook已经做的软件规模:

  • Facebook有570000000000每月页面浏览量 (据Google Ad Planner)
  • Facebook的照片量比其他所有图片网站加起来还多(包括Flickr等网站)
  • 每个月超过30亿张照片被上传
  • Facebook的系统服务每秒处理120万张照片,这不包括CDN服务中处理的照片
  • 每月超过25亿条的内容 (状态更新,评论等)被共享
  • Facebook有超过30,000服务器(这个数字是去年的)

Continue reading ‘Facebook后台技术探秘’

Share