游戏设计了每日活动,在第二天凌晨12:00时初始化活动次数及活力值。
这就需要和服务器通讯,将数据库中的活动次数初始化。
如果有1000个用户在12:00都保持开着手机游戏,那么客户端会在12:00 00秒同时发起初始化请求。
服务器是无法同时高并发处理1000个并发request。
但是用户(比如我玩游戏的时候)希望在12:00准时能更新,如果12:00活动没有刷新,用户可能会产生对质量的不信任感。
想了三个解决方案,
一, 服务器在收到高并发request时候throttle一部分
二,服务器设计一套缓存机制,如哈希桶
三,客户端下功夫,分散request的请求时间,减小服务器负荷
第三种最简单,先实现了。方法如果客户端是12:01之后上线,立刻发送reset,如果客户端在12:00 - 12:01之间,random一个0-10s的值,提示初始化正在进行,将负荷均摊到10s内。
暂无关于此日志的评论。