69书吧最新网址:www.69hao.com
首页 > 精品推荐 > 重生不当牛马,我定规则 > 第55章 如果企鹅要做

第55章 如果企鹅要做(1/2)

目录
好书推荐: 从浣熊市开始轮回 隐秘的光辉 从拱卫司开始显圣 木叶:从搞新宇智波开始! 不想混吃等死只好去穿越 知否:我是齐衡 射鵰:从铁掌峰开始 人在大竹峰,酒剑仙越醉越强 诛仙:焚香间谍,四门真法震世间 修复文物:从会哭的唐俑开始

张老师继续画:“加连接池。提前建好一批连接,谁要用就借一个,用完还回去。这样不会每次请求都新建连接。做到这一步,能扛到三千人。”他又標了一个数字。

“给常用查询栏位加索引,能到四千。”往上又標了一个。

叶明问:“那文本文件那块呢?还有优化的空间吗?”

张老师看了他一眼:“你那个文本文件,现在多大?”

“八百条事件。上线先用五百条,后面內容团队会继续写,很快能到三千条。”

张老师点头:“三千条事件,纯文本几百kb。就算以后到一万条,也就一两mb。你那台伺服器內存至少1g,这点量完全不是问题。”

叶明追问:“那除了把文件加载进內存,还有別的优化可以做吗?”

张老师想了想:“事件多了以后,你得考虑『热点』的问题。不是所有事件被触发的频率都一样。

有的事件可能一天触发几万次,有的可能几天才触发一次。

那些高频事件,你可以把计算结果缓存起来,不用每次都重新算一遍。”

他在白板上又画了一个框,標上“计算结果缓存”:“这叫『热点事件结果缓存』。跟你那个文本文件加载,一个解决的是io问题,一个解决的是cpu计算问题。两个层面的东西。”

叶明把这些都记下来:“那怎么判断哪些是热点事件?”

张老师笑了:“上线跑起来就知道了。看日誌,哪些事件触发次数最多,哪些事件让伺服器cpu飆得最高。数据会告诉你答案。做技术的人,不能靠猜,得靠数据说话。”

叶明点头,又问:“那排行榜呢?排行榜的压力怎么解决?”

张老师继续画:“把排行榜做成静態页面,五分钟更新一次。用户访问的时候直接读静態文件,不用查资料库。这样排行榜的访问压力就没了。”

叶明追问:“五分钟会不会太慢?用户看到的数据不是实时的。”

张老师看了他一眼:“你这个游戏,需要实时排名吗?

(请记住 101 看书网解无聊,????????????.??????超靠谱 网站,观看最快的章节更新)

玩家在乎的是自己排在第几名,还是在乎『我比昨天进步了』?

想清楚这个问题,你就知道五分钟够不够用了。

很多时候,用户要的不是绝对实时,是『看起来实时』。”

叶明愣了一下,把这句话也记下来。

叶明又问:“那排行榜的静態页面放在哪里?放在自己伺服器上就行吗?”

张老师点头:“放你自己伺服器上就行。用户访问的时候直接读静態文件,压力小很多。”

叶明追问:“那如果流量再大呢?静態页面也扛不住的时候怎么办?”

张老师笑了,在白板上又画了几个框,连成一张图:“做负载均衡。

前面加一个分发器,后面掛多台伺服器。

用户的请求先到分发器,分发器决定交给哪台伺服器处理。

这样每台伺服器的压力都变小了,整体能扛的流量就上去了。”

叶明盯著白板看了一会儿:“那用户的数据怎么办?比如用户登录了,下次请求被分到另一台伺服器,不就丟了?”

张老师笑了:“问到点子上了。所以得把用户会话单独拎出来,放redis里。

redis是一种內存资料库,读写速度极快。

所有伺服器共享一份会话数据,用户不管被分到哪台机器,都能读到自己的登录状態。”

叶明追问:“redis也是存在內存里的?那和mysql有什么区別?”

张老师在白板上又画了一个框,標上redis:“mysql是硬碟资料库,数据存在硬碟上,读写慢,但容量大、持久化。

本章未完,点击下一页继续阅读。

目录
新书推荐: 国运:自创遮天法,开局强吻校花 我在美国当教父 大明:现代归来,打造海外帝国 灵气复苏:截教討债来了谁拦谁死 海贼:我体内住着一头虚! 万历靖明 大明:洪武贤王,被老朱推演人生 柯南:什么马甲?那是我的奋斗! 谍战:我能扫描万物信息 高武:融合超级AI,无敌横推!
返回顶部