© 内容版权所有,转载或复制需附源站地址 www.tanjp.com 谢谢合作。
变更记录
2020-04-27, tanjp, 以帮会系统为例,初步进行社交类系统的架构设计。
在前两次 分区分服与大规模跨服功能 和 百万在线的角色服承载能力分析 的设计分析的基础上,再进入服务端架构的内部进行分析,社交功能服和路由总线的设计分析。
一、需求预设
在进行社交功能服的设计和分析前,要设定一个需求场景,我们就以游戏中常见的帮会系统来进行讨论分析。选择帮会系统也是有原因的,毕竟游戏服务端处理的业务场景不同于其他互联网业务(如 微博,IM聊天,直播,等等),游戏内的玩法更加注重强交互。下面以帮会系统为例,来分析社交类功能系统的架构设计。
1.1 帮会系统需求
- 玩家可以创建帮会。
- 可以查找一个帮会来加入。
- 可以看到帮会内其他玩家的状态。
- 帮会内每个玩家都能为帮会做点事情(如 捐献,做一个小活动A,B,C,等等)。
- 帮会能还能组织一场大型活动玩法(如 帮会成员一起打BOSS,帮会A与帮会B之间的群体战争,等等)。
NOTE: 在帮会系统实现上会有很多细节问题,在这里不是讨论怎么做一个帮会系统,而是借助帮会系统的设计,来分析如何进行社交类功能系统的架构设计。
1.2 数据预设
还是以之前设定的数据进行分析,【百万用户在线】,【千万日活用户】,【亿级用户量】。
设定每个帮会的人数上限是 500人,也不可能每个帮会的都会满员,从以往的经验来看,也不是所有玩家都会加入帮会。假设 90%的人加入了帮会,也就是 9000万用户,每个帮会平均有 300个成员,所以帮会的数量 = 9000万 / 300个 = 30万,也就是说1亿用户量,大概就有30万个帮会。
帮会系统是一个社交系统,它记录帮会内的所有成员的基本信息,如 名字,等级,职位,捐献,上下线时间,等等。当然点开每个成员还能看到更加详细的资料,但是这不是帮会系统的职能,由另外的系统功能来实现,这里不再深入。
假设一个帮