SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Downloaden Sie, um offline zu lesen
Ф䗫␌៣থ㸠ᑇৄ 
ԭЁᔎᑇৄᶊᵘ䋳䋷Ҏ
• ଚϮ῵ᓣ 
• 㧠㢑ᳳ 
• ៤䭓ᳳ 
• ໂ໻ᳳ
Ф䗫ଚϮ῵ᓣ 
• ⌕䞣㦋প 
⫼᠋䆚߿ǃ䡈ᴗ 
• ⌕䞣ব⦄ 
ᬃҬǃᑓਞㄝ 
• ⌕䞣⬭ᄬ 
ߚᵤᑇৄǃ⫼᠋᳡ࡵ(݈䍷⼒Ѹㄝ)
䖲᥹CPǃ⏴䘧ǃ⥽ᆊ 
᠟␌APP 
⼲ᑭ䗗ѵϝࠥ䈾 
Ф䗫SDK 
䋺োᬃҬ 
Ф䗫server 
䋺ো᳡ࡵᬃҬ᳡ࡵ
㧠㢑ᳳ(2009᳿-­‐2010᳿) 
SDK(ॳ⫳android)᥹ܹӥ䯆ǃ㔥␌ 
ⱏᔩǃᬃҬǃᑓਞ 
ৢッ(linux,apache,php,mysql) 
ⱏᔩ(oauth)ǃᬃҬǃᑓਞǃ㒳䅵 
ᄬټ 
mysql
㋏㒳㾘῵ 
• DAU 
10W 
• ᳡ࡵ఼᭄䞣:10ৄ 
• Ḛᶊ:cakephp 
• ᭄᥂ᑧ:mysql 
• webserver: 
apache
៤䭓ᳳ(2011-­‐2013) 
• ㊒ક␌៣থ㸠䍞ᴹ䍞໮(∈ᵰᖡ㗙ǃ⼲ᑭ䗗 
ѵǃഄ䪕䎥䝋ㄝ),⌕䞣⣯๲DŽ 
• ㋏㒳乥㐕ⱘ502 
• ⱏᔩ䍙ᯊǃᅩᴎǃ⫼᠋ᡩ䆝Ϟछǃᬊܹϟ 
䰡ǃ᭄᥂ߚᵤ䍙ᯊ 
• ߱ᳳⱘlampˈᏆ㒣᮴⊩⒵䎇
• DAU 
100-­‐300W 
• ᳡ࡵ఼᭄䞣: 
80ৄ 
• Ḛᶊ:cakephp 
• ᭄᥂ᑧ:mysql 
• webserver: 
nginx 
• ࠡ㕂ᴎ: 
nginx 
• cache: 
redismongodb
ᅮԡ䯂乬-­‐ᓎ䆒ѥⲥ᥻㋏㒳
29⾦㗫ᯊߚᵤ 
• Mongodbऩ㸼᭄᥂䞣໾໻(5ғ䆄ᔩ),䖲᥹᭄໻ 
• Mysqlऩ㸼᭄᥂䞣໾໻(5-­‐10ғ䆄ᔩ) 
• ᑓਞሩ⼎䘏䕥໡ᴖ 
• ໾໮ৠℹݭ᭄᥂⌕∈㸼
ϮࡵൖⳈ࣪-­‐ӥ䯆ǃ㔥␌ǃᑓਞߚ⾏ 
⫼᠋䞣ᔎⱏᔩ㘨㔥ᬃҬሩ⼎ᑓਞ 
ӥ䯆ғ৺৺ᰃ 
㔥␌ⱒϛᰃᰃ৺
㸼∈ᑇᢚߚ-­‐ϡذᴎ 
• ᮍḜ1:䗮䖛mysqlЏҢ+㾺থ఼ 
ऩ㸼master 
-­‐slave-­‐㾺থ఼-­‐ߚᑧߚ㸼 
໻㸼 
master໻㸼㾺থ఼ 
㸼_00 
㸼_01 
㸼_99 
slave
㸼∈ᑇᢚߚ-­‐ϡذᴎ 
l ᮍḜ2:ᓔথ䖕⿏Ё䯈ሖ,㾷ᵤbinlog,Ϯࡵϡᛳⶹ
೼㒓Ϯࡵ੠᭄᥂ߚᵤߚ⾏ 
• ೼㒓੠⾏㒓Ϯࡵ䗮䖛᭄᥂ㅵ㒓ᓖℹ࣪ 
• ߫ᓣ᭄᥂ᑧinfobright᳓ҷmysql 
催य़㓽↨ 
催ᗻ㛑 
ⶹ䆚㔥Ḑ 
ݙᄬ䖤ㅫ
ࡼᗕ䇋∖ড৥ҷ⧚㓧ᄬ 
পᑓਞ䜡㕂ֵᙃ 
/promoUon/popup_banners᥹ষ,খ᭄ᰃchannelǃ 
game_id 
ዄؐ↣⾦䖒ࠄ1ϛ⃵䇋∖ˈcakephpᣵϡԣ. 
Channelǃgameidⱘ㒘ড়ৃかВDŽ100 
× 
100 
Varnishড৥ҷ⧚㓧ᄬࡼᗕ䇋∖
Ӭ࣪㒣偠 
• 㔥␌ǃӥ䯆ⱘҷⷕǃ㒘ӊǃ䚼㕆ᢚᓔ 
• ᑓਞৢৄ㋏㒳ҢSDKЁ⣀ゟ 
• ೼㒓Ϯࡵ੠᭄᥂ߚᵤϮࡵߚ⾏ˈ৘㞾䞛⫼ϡ⫼ⱘӬ࣪ᮍḜ 
໻㋏㒳ᇣ 
خ 
• ᑓਞ㋏㒳ᓔথܼᮄ催ᗻ㛑Ḛᶊ,䍙䖛Пࠡcakephp 
5-­‐10סᗻ㛑 
• ᅲ⦄䕏䞣ⱘ催ᗻ㛑䯳߫,㾷އ⍜ᙃ䯳߫㾷य़ 
• Փ⫼redisǃmysqlপҷmongodb䲚㕸ˈ㾷އњmongodbᄬ೼ⱘᗻ㛑⫊乜 
• ᓩܹvarnishড৥ҷ⧚㓧ᄬ,ࡴ䗳ࡼᗕ䇋∖ 
ᗻ㛑᳔໻ 
࣪ 
• 䴲Ḍᖗ䘏䕥ᓖℹ࣪,䞛⫼⍜ᙃ䯳߫+ߚᏗᓣworker,ᦤछᑊথ䞣ˈ䰡Ԣᓊᯊ 
• 㒘ӊ᳡ࡵ࣪ৢ,Ӯࡴ䞡㔥㒰IOᓔ䫔,䳔㽕ᑊ㸠࣪㒘ӊ䰡Ԣ䇋∖ᓊᯊDŽ 
ᓖℹ࣪ǃ 
ᑊ㸠࣪ 
• 䴲Ḍᖗࡳ㛑ᬙ䱰ˈϡᕅડⱏᔩǃᬃҬ᳡ࡵ 
• ᓎ䆒㔥␌䎼ᴎ᠓ᆍ♒㋏㒳ˈֱ䆕ऩᴎ᠓ᬙ䱰ᯊˈޚᅲᯊ䎼ᴎ᠓ⱏᔩǃᬃ 
Ҭৃ⫼ 
ᶨᗻৃ⫼
䆒䅵㒣偠 
• ೼㒓੠ߚᵤϮࡵϹḐߚ⾏ 
• API࣪ǃ῵ഫ࣪ᓔথ 
• Web᮴⢊ᗕ࣪ǃsession㒳ϔᄬټ 
• Ϟ㒓ࠡᇍ䞡㽕API䖯㸠य़⌟ 
᥹ܹǃ䘏䕥 
ሖ 
• 䇏໮ݭᇥcache+db,ⳟcacheੑЁ⥛ 
• ݭ໮䇏ᇥ䯳߫ᓖℹ࣪,ড়ᑊݭdb 
• ݭ໮䇏໮ܼݙᄬcache,⎬≄ㄪ⬹ 
• Ϟ㒓ࠡᇍՓ⫼ࠄⱘᄬټǃcache䖯㸠ᆍ䞣乘Ԅ 
Cacheሖ 
• ߚᑧߚ㸼ᕜ䞡㽕ǃ᮹ᖫ㉏ⱘгৃ㗗㰥ᯊ䯈ߚऎ 
• ೼㒓ϮࡵϡՓ⫼㸼joinǃᄬټ䖛⿟ǃ㾺থ఼ 
• ೼㒓ϮࡵӬܜЏ䬂ᶹᡒǃ㋶ᓩ㽕ᇥ 
ᄬټሖ
䞡ᵘৢⱘᶊᵘ
Ꮉ԰ᅸࠊ䴶Јⱘ 
䯂乬 
• ᳡ࡵ䞡໡ᓎ䆒 
• ᳡ࡵ䋼䞣ϡ催 
• 㒣偠᮴⊩݅ѿ 
៤ᴀ催 
• Ӭ࣪ǃ䞡ᵘⱘ 
៤ᴀ໾催ˈ䳔 
㽕ᦤࠡ䆒䅵ǃ 
ᑇৄ࣪ 
• Ҏ࡯៤ᴀ⌾䌍 
໻ 
• 乍ⳂϞ㒓਼ᳳ 
ᢝ䭓 
᳡ࡵᄸቯ 
• ࡴ䞡䖤㓈䋳ᢙ 
• ᳡ࡵ᮴㾘ߦˈ 
䲒Ѣড়࡯
ໂ໻ᳳ(2013-­‐㟇Ҟ) 
• থ㸠ǃ㞾ⷨᑊ㸠 
• DAU 
1000W 
MAU 
1ғ 
• ᳡ࡵ఼᭄䞣: 
300ৄ+500ৄѥ᳡ࡵ఼ 
• 䇁㿔:php,c,c++,java,nodejs,lua 
• ᭄᥂ᑧ:mysql 
• webserver: 
nginx,tomcatㄝ 
• ࠡ㕂ᴎ: 
nginx,haproxy 
• cache: 
redismongodbㄝ 
• ᭄᥂ߚᵤ:infobrighthadoop
༃ᅲ᳡ࡵǃᑇৄ㟈㚰
䋺ো᳡ࡵ 
• ߚᏗᓣID⫳៤఼ 
ᬃᣕ೑ݙǃ⍋໪Ϯࡵ 
• 㒳ϔⱏᔩ(oauth) 
• 㒳ϔ䡈ᴗ
䋺ো᳡ࡵ-­‐ߚᏗᓣID⫳៤ 
• Work㒘ӊ:৥MANAGER䇋∖ID↉ˈҢ↉Ё⫳៤ID㒭䇋∖㗙,ৃ䚼㕆໮༫ 
• Manager:䋳䋷⫳៤ID↉ 
• DB:䋳䋷ᄬټID↉ߚ䜡ᚙމ 
Ϯࡵ 
• PROXY: 
৥WORKER⬇䇋ID 
ᴎ఼proxy 
IDC1IDC2 
work1 
manager1 
Db1༛᭄ 
work2 
manager2 
ঠmasterDb2ي᭄
ᬃҬ᳡ࡵ 
• ᔅ㘨㔥ᬃҬ䳔㽕㾷އ䯂乬 
Ø 
ⷁֵᢺ៾ǃࠋ䘧݋DŽ 
1.ߚᵤ⥽ᆊ԰ᓞ⡍ᕕ,ᠧߏDŽ 
2. 
ⷁֵᔎ㘨㔥ᬃҬ 
• ᔎ㘨㔥ᬃҬ䳔㽕㾷އ䯂乬 
Ø 
ϝᮍᬃҬ䞡໡䅶ऩ 
1.䅶ऩᐖㄝẔ⌟(Ф䗫ǃCP) 
Ø ᴎ᠓ᬙ䱰ㄝǃᬃҬ催ৃ⫼ 
1.ᓎ䆒䎼IDCᆍ♒ᬃҬ᳡ࡵ
⍜ᙃ᳡ࡵ 
• 䭓䖲᥹䲚㕸ǃ೼㒓⢊ᗕ 
• ᔅ㔥㒰ᮁ㒓䞡䖲ᴎࠊ 
• ৃ䴴ǃ催ᬜ⍜ᙃӴ䕧 
⍜ᙃversion,ack,sync
㧹䫔᳡ࡵ 
• ᑓਞ᳡ࡵ 
㾘߭᥼㤤 
㊒ޚ᥼㤤 
1.ᮄ⫼᠋-­‐itemⳌԐ᥼㤤 
2.㗕⫼᠋-­‐䋱৊ᮃߚ㉏᥼㤤
㊒ޚ㧹䫔-­‐㗕⫼᠋᥼㤤
㊒ޚ㧹䫔-­‐ᮄ⫼᠋᥼㤤
᭄᥂ߚᵤ᳡ࡵ 
Ϯࡵ 
server1 
Ϯࡵ 
server2 
᭄᥂ㅵ㒓 
ᓖ 
ℹ 
Hadoop,hiveinfobright 
᭄ 
᥂ 
ѻ 
ક 
㒳䅵 
SDK 
᭄᥂ᑇৄ
䗮䖛᳡ࡵ㒘ড়ᵘᓎᮄ乍Ⳃ 
㒳ϔ⫼᠋Ёᖗ᳡ࡵ• ݀ৌ᠔᳝␌៣ǃSDKǃAPP 
㒳ϔ䡈ᴗ᳡ࡵ• A乍ⳂǃB乍ⳂǃD乍Ⳃ 
Openapi᳡ࡵ• A乍ⳂǃB乍ⳂǃD乍Ⳃ 
⍜ᙃ᳡ࡵ• A乍ⳂǃC乍Ⳃ 
Lbs᳡ࡵ• A乍Ⳃ 
㛣ᄫ䖛Ⓒ᳡ࡵ• SDK乍ⳂǃB
• 
NEXT 
㰮ᢳ࣪
@InfoQ 
infoqchina

Weitere ähnliche Inhalte

Was ist angesagt?

Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introductionTianwei Liu
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130Jinrong Ye
 
Elasticsearch 簡介
Elasticsearch 簡介Elasticsearch 簡介
Elasticsearch 簡介Pei-Hsun Kao
 
第一次Elasticsearch就上手
第一次Elasticsearch就上手第一次Elasticsearch就上手
第一次Elasticsearch就上手Aaron King
 

Was ist angesagt? (6)

Hadoop introduction
Hadoop introductionHadoop introduction
Hadoop introduction
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
Hadoop hive
Hadoop hiveHadoop hive
Hadoop hive
 
Elasticsearch 簡介
Elasticsearch 簡介Elasticsearch 簡介
Elasticsearch 簡介
 
fis
fisfis
fis
 
第一次Elasticsearch就上手
第一次Elasticsearch就上手第一次Elasticsearch就上手
第一次Elasticsearch就上手
 

Andere mochten auch

郑从威 Uc浏览器研发实践分享
郑从威 Uc浏览器研发实践分享郑从威 Uc浏览器研发实践分享
郑从威 Uc浏览器研发实践分享Trinea Trinea
 
冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践Trinea Trinea
 
姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发Trinea Trinea
 
叶亚明&刘普功 携程Mobile架构演化
叶亚明&刘普功 携程Mobile架构演化叶亚明&刘普功 携程Mobile架构演化
叶亚明&刘普功 携程Mobile架构演化Trinea Trinea
 
android design pattern
android design patternandroid design pattern
android design patternLucas Xu
 
柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试Trinea Trinea
 
EventBus for Android
EventBus for AndroidEventBus for Android
EventBus for Androidgreenrobot
 

Andere mochten auch (8)

郑从威 Uc浏览器研发实践分享
郑从威 Uc浏览器研发实践分享郑从威 Uc浏览器研发实践分享
郑从威 Uc浏览器研发实践分享
 
冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践冉有 支付宝钱包的研发挑战和最佳实践
冉有 支付宝钱包的研发挑战和最佳实践
 
姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发
 
叶亚明&刘普功 携程Mobile架构演化
叶亚明&刘普功 携程Mobile架构演化叶亚明&刘普功 携程Mobile架构演化
叶亚明&刘普功 携程Mobile架构演化
 
Java annotation
Java annotationJava annotation
Java annotation
 
android design pattern
android design patternandroid design pattern
android design pattern
 
柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试柴锋 跨平台移动应用的自动化验收测试
柴锋 跨平台移动应用的自动化验收测试
 
EventBus for Android
EventBus for AndroidEventBus for Android
EventBus for Android
 

Ähnlich wie 余中强 乐逗手游发行技术平台

Hadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TWHadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TWJazz Yao-Tsung Wang
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲84zhu
 
開發環境建置
開發環境建置開發環境建置
開發環境建置Shengyou Fan
 
Drupal performance (in DrupalCamp Taipei)
Drupal performance (in DrupalCamp Taipei)Drupal performance (in DrupalCamp Taipei)
Drupal performance (in DrupalCamp Taipei)jimyhuang
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Li Yi
 
線上埋碼資料收集實作
線上埋碼資料收集實作線上埋碼資料收集實作
線上埋碼資料收集實作FEG
 
Open Street Map安裝指引 (Ubuntu 12.04)
Open Street Map安裝指引 (Ubuntu 12.04)Open Street Map安裝指引 (Ubuntu 12.04)
Open Street Map安裝指引 (Ubuntu 12.04)Marc Huang
 
開發環境建置
開發環境建置開發環境建置
開發環境建置Shengyou Fan
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰Scourgen Hong
 
Easier and Faster for hbase in HadoopCon 2014
Easier and Faster for hbase in HadoopCon 2014Easier and Faster for hbase in HadoopCon 2014
Easier and Faster for hbase in HadoopCon 2014Hubert Fan Chiang
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops琛琳 饶
 
寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事Chieh (Jack) Yu
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
Spark在苏宁云商的实践及经验分享
Spark在苏宁云商的实践及经验分享Spark在苏宁云商的实践及经验分享
Spark在苏宁云商的实践及经验分享alipay
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術Yu Lung Shao
 
快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规yangdj
 
2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform Security2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform SecurityJazz Yao-Tsung Wang
 
Class 20170126
Class 20170126Class 20170126
Class 20170126Ivan Wei
 

Ähnlich wie 余中强 乐逗手游发行技术平台 (20)

Hadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TWHadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TW
 
Nosql三步曲
Nosql三步曲Nosql三步曲
Nosql三步曲
 
開發環境建置
開發環境建置開發環境建置
開發環境建置
 
Drupal performance (in DrupalCamp Taipei)
Drupal performance (in DrupalCamp Taipei)Drupal performance (in DrupalCamp Taipei)
Drupal performance (in DrupalCamp Taipei)
 
Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践Gops2016 云端基于Docker的微服务与持续交付实践
Gops2016 云端基于Docker的微服务与持续交付实践
 
My DevOps Tour 0.1
My DevOps Tour 0.1My DevOps Tour 0.1
My DevOps Tour 0.1
 
線上埋碼資料收集實作
線上埋碼資料收集實作線上埋碼資料收集實作
線上埋碼資料收集實作
 
Open Street Map安裝指引 (Ubuntu 12.04)
Open Street Map安裝指引 (Ubuntu 12.04)Open Street Map安裝指引 (Ubuntu 12.04)
Open Street Map安裝指引 (Ubuntu 12.04)
 
開發環境建置
開發環境建置開發環境建置
開發環境建置
 
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
 
Easier and Faster for hbase in HadoopCon 2014
Easier and Faster for hbase in HadoopCon 2014Easier and Faster for hbase in HadoopCon 2014
Easier and Faster for hbase in HadoopCon 2014
 
Monitor is all for ops
Monitor is all for opsMonitor is all for ops
Monitor is all for ops
 
寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事寫出高性能的服務與應用 那些你沒想過的事
寫出高性能的服務與應用 那些你沒想過的事
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Spark在苏宁云商的实践及经验分享
Spark在苏宁云商的实践及经验分享Spark在苏宁云商的实践及经验分享
Spark在苏宁云商的实践及经验分享
 
讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術讓軟體開發與應用更自由 - 使用 Docker 技術
讓軟體開發與應用更自由 - 使用 Docker 技術
 
快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规快!快!快! 互联网第一条军规
快!快!快! 互联网第一条军规
 
2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform Security2016-07-12 Introduction to Big Data Platform Security
2016-07-12 Introduction to Big Data Platform Security
 
Class 20170126
Class 20170126Class 20170126
Class 20170126
 
Why use MySQL
Why use MySQLWhy use MySQL
Why use MySQL
 

余中强 乐逗手游发行技术平台