先简单记录一下,后面再完善:

    1. 将所有的排行榜数据存储到一个数据库之中
    2. 启动一个排行榜服务,负责排行榜数据的异步更新与查询
    3. 缓存热点玩家的排行榜数据。

    举个例子,玩家A产生了一条更新排行榜的数据,将之发送到排行榜服务,排行榜服务异步更新到数据库之中。更新成功之后,再从数据库中拉取当前此玩家的排名,缓存到排行榜服。当玩家下次访问时,先返回缓存的排名,同时启一个异步任务,从数据库刷新出最新的排名。因为排行榜的整个更新是异步的,所以有短暂的时间内,排名可能是旧数据,但是刷新之后,下次显示就接近于正确,并且最终如果排行榜变化那是很频繁的时候,整个排行榜的排名最终会是正确的排名。