Five Minutes公司程延輝(小名康天) 介紹開心農場架構,social-game的技術挑戰,支持千萬級DAU的social-game技術架構。這是一個對於開發者來講,很是精彩,很是有實用性指導的一次演講,詳細介紹了不少技術內幕。 php
Five-Minutes公司的著名social-game開心農場,目前很是受用戶歡迎,包括國外的Facebook,國內的開心網都是如此,是全球最大的social-game,臺下熱烈掌聲。呵呵。開心農場這個遊戲從介紹看,至關成功,最先是08年9月在校內網上線,然後在51等平臺推廣,包括Facebook。如今已經有1570萬遊戲用戶了,其中包括50萬的Facebook用戶。 web
下載演講ppt:Social Game的技術挑戰.ppt 數據庫
開心農場架構主要難點:一、如何存儲大規模的用戶數據千萬級;二、若是應對大量訪問天天數億請求量;三、若是應對數據的頻繁修改,每秒數萬次數據修改。 緩存
解決的方式 性能優化
優化: 服務器
一、負載均衡,web服務器平行擴展。 架構
二、服務器性能優化。 負載均衡
三、異步處理,緩存數據接口,Linux內核參數優化,挖掘PHP的效率,用fastcgi模式運行php,用EAccelerator加速。固定不變數據作成php配置文件,用C開發PHP擴展等。 異步
數據庫性能優化: memcached
一、數據庫分庫分表,全部數據所有設計成 key-》value形式,不用join。
二、使用INNODB,常常操做的數據表中全部字段儘可能設計成數值型,用update替代INSERT和DELETE操做
異步處理:整個系統最關鍵的部分,
原則:把客戶端暫時不須要的數據進行異步處理。
實例:講非核心數據先寫入memcached,異步更新到數據庫,合併數據庫更新操做,Feed和Notification的異步發送。
利用客戶端資源:Flash屏蔽重複操做和沒必要要請求,Flash進行一些計算減輕服務器的復旦,例如好友排序等。Flash緩存一些數據。
social game = social + game。實時互動(大負載)和非實時互動(大負載)。
服務器角色:場景服務器,邏輯服務器,admin服務器,gateway,架構邏輯仍是挺複雜的,天天處理億級請求的架構,徹底和百萬級不同!徹底可以經過平行擴展的方式應對,gateway和場景服務器都徹底能夠增長。
Blue Whale是他們們正在開發的解決長鏈接的social game架構。