QQ宠物产品总体技术方案.doc_第1页
QQ宠物产品总体技术方案.doc_第2页
QQ宠物产品总体技术方案.doc_第3页
QQ宠物产品总体技术方案.doc_第4页
QQ宠物产品总体技术方案.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 1 拟制:拟制:日期:日期: 审核:审核:日期:日期: 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 Q Q 宠宠 物物 总总 体体 技技 术术 方方 案案 版版 本本 号号 :XXX V1.0 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 2 修订日期修订日期修订内容修订内容协议版本协议版本修订人修订人 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 3 目目录录 目录目录 3 1背景背景 5 2概述概述 5 2.1范围.5 2.2引用标准.5 2.3术语和定义.5 2.4符号和缩略语.5 3总体架构设计总体架构设计 6 3.1设计原则.6 3.1.1产品关联性设计.6 3.1.2产品依赖性设计.6 3.2设计目标.6 3.2.1路标规划.6 3.3系统需求.6 3.3.1系统软件需求.6 3.3.2系统硬件需求.7 3.3.3系统功能需求.7 3.3.4系统性能需求.9 3.4系统总体架构.10 3.4.1系统物理架构.10 3.4.2系统逻辑架构.10 4关键技术分析关键技术分析 1 4.1业务模型分析.1 4.1.1目标用户.1 4.1.2用户入口.1 4.1.3消费系统策略.1 4.1.4产品依赖关系.1 4.1.5典型业务过程.1 4.2用户模型分析.5 4.2.1用户基础信息.5 4.2.2用户操作信息.5 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 4 4.2.3用户流量信息.8 4.3系统模型分析.8 4.4性能容量分析.9 4.4.1总计.10 4.5负载均衡分析.10 4.5.1负载均衡策略.10 4.5.2异地分布策略.11 4.6容灾备份分析.11 5部署方案部署方案 12 6风险分析及规避措施风险分析及规避措施 13 6.1硬件故障.13 6.1.1机器、磁盘故障.13 6.1.2IDC 线路故障和黑客攻击 .13 6.2软件故障.13 7备选方案备选方案 14 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 5 1 背景背景 QQ 宠物是公司当前给以重大盈利期望的拳头产品之一。目标是建立成全球第一的在线 虚拟宠物养成类休闲游戏,成为公司主要的盈利点之一。 2 概述概述 2.1 范围范围 该文档主要描述 QQ 宠物系统的技术架构,作为架构评审的基础。 2.2 引用标准引用标准 2.3 术语和定义术语和定义 名词名词解释解释 2.4 符号和缩略语符号和缩略语 缩写英文描述中文描述 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 6 3 总体总体架构设计架构设计 3.1 设计原则设计原则 3.1.1产品关联性设计产品关联性设计 与 OI_DB 扩展标志位的同步 用户注册宠物,宠物系统将主动通知 oi_db 设置标志位。 3.1.2产品依赖性设计产品依赖性设计 使用 server-bench 作为 server framework,分离业务逻辑和通信,进程调 度等基础设施 使用 cplib, qslog, tlib 库 3.2 设计目标设计目标 3.2.1路标规划路标规划 阶段阶段开始时间开始时间完成时间完成时间阶段目标和工作进度指标阶段目标和工作进度指标 2.02005.3-2005.62005.6 完成基本功能 2.12005.6-2005.72005.7 增加了宠物结婚功能 3.3 系统需求系统需求 3.3.1系统软件需求系统软件需求 slackware linux kernel 2.4.x 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 7 mysql 4.0 3.3.2系统硬件需求系统硬件需求 Web 服务器服务器/PetOnline 服务器服务器/PetInfo 服务器服务器/领养关系服务器领养关系服务器/宠物炫图片宠物炫图片/ 客户端安装包客户端安装包/资源下载服务器:资源下载服务器: LENOVO R510-5112 标配:CPU P4 2.4G2 内存:4G DDRRAM 硬盘:36G 1 NORAID DB 服务器:服务器: DL380G3 标配:CPU P4 2.8G2 内存:1G HPDDRRAM 2 硬盘:140G RAID5(140G) 3.3.3系统功能需求系统功能需求 宠物领养:用户初始得到宠物。记录 QQ 号码的领养关系,同步标志位到 oidb 宠物在线: server 维持宠物在线状态,自动根据卫生值,饥饿值决定宠物生病, 根据宠物心情值和在线时间增长宠物的成长值。 基本养成:提供给用户通过 PetClient 和 PetServer 的交互,给虚拟宠物喂食、 洗澡、吃药,属性查看的功能。宠物如果养育不当会死亡,死亡后可以抛弃。 宠物社区:宠物社区是一个 web 应用,用户通过嵌入宠物客户端的 ie 控件来访问, 在社区上购买药品,食品和日常用品,以及装扮用的房屋等道具和学习宠物炫。 社区还是结婚,打工等功能的入口。在社区上还提供用户查询、修改宠物信息的 功能,查看宠物元宝帐户的功能和查看元宝消费记录的功能。 宠物打工:打工是一个相对独立的子系统,目前只在社区上有入口。宠物打工是 宠物的一种状态,这种状态持续指定的时间,并且给用户提供指定数量的元宝以 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 8 及增加指定属性的值。用户通过社区上的入口进行打工,打工入口为一个 CGI 程 序,负责检查是否符合打工的条件。打工时要求宠物的消耗比正常状态多。 宠物结婚:符合一定条件的宠物双方可以结为夫妻关系。结婚后的宠物可以生蛋, 蛋必须赠送给自己的好友。相当于给好友开通宠物。 宠物装扮:宠物使用买来的房屋作为桌面上宠物的背景 s 宠物炫:宠物炫是 QQ 聊天时有宠物的一方可以向好友发送由宠物表现的丰富表 情,动作和语言。用户可以定制语言。 宠物在 QQ 上的资料查询:在 QQ 客户端,用户可以通过查询对方的资料看到对 方的宠物信息,包括对方是否有宠物,宠物的级别,宠物的名字,性别,婚否等 等。 宠物在 QQ 上的表现:用户在 AllInOne 聊天窗口中和宠物资料界面上都可以看到 对方和自己的宠物图片。s 3.3.4系统性能需求系统性能需求 最小化容量: 一台 OnlineServer 服务器上同时支持 50000 个在线宠物 一台 DB 能够支持 50 万只宠物注册数 一台 WebServer 能够支持 25000 只在线宠物 一台 AdoptMapServer 能够支持 1.5 亿只注册用户数 一台 Middled 能够支持 5 万只在线宠物数 一台 PetInfoServer 能够支持 100 万只注册宠物 一台宠物炫图片 server 能够支持 100 万只注册宠物 一台资源下载 server 能够支持每天新增 2 万只宠物 一台客户端下载 server 能够支持每天新增 10 万只宠物 最大化容量 支持 3000 万只宠物注册用户数 最高在线 400 万只宠物 响应速度要求 用户登陆时间5s 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 9 用户操作的响应时间应该小于 1 秒 宠物状态不一致时延不超过 5 秒 宠物炫发送响应时间不超过 5 秒 3.4 系统总体架构系统总体架构 3.4.1系统系统物理架构物理架构 宠物客户端 宠物客户 端下载服 务器组 资源文件 下载服务 器组 业务平台 服务 DB . DB apache1 .server N server 1 宠物喂养服务 /WebOnline服务/ 资料查询服务 用户资料 数据库 宠物炫服 务器组 宠物炫图片服 务器组 宠物社区 领养关 系 Server 组 元宝帐户 服务 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制 10 3.4.2系统逻辑架构系统逻辑架构 ConnServer (由crow实现的接入server) OnlineDaemonStatusDaemon ConnServer (由crow实现的接入server) ShareMemory PetObjectPool WebOnlineDaemon LazyWrite Daemon WebOnlineServertRemoteBr oker Instance In FastCGI 长连接 读取宠物对象属性数据 数据 可靠的回写数据 InMsgQueueOutMsgQueue Read Write Read Write setTimer接口 调用OIAgent发送状态改变消息 设置定时事件 在web server上的fastCGI里调 用的组件,和WebOnlineServer 保持长连接 数据 数据 屏蔽后台DB的分布,扫描 ShareMemory中发生的改变 然后都入一个提交队列。用一 个线程组专门负责处理提交队 列写DB同时还负责将共享内存 mmap的文件刷新 调用OIAgent发送消息 其他CGI tcp短连接同步调用 设置定时事件 InMsgQueu e OutMsgQue ue Read Write Read Write 宠物数据的操作都直接操作这个cache, 写数据的操作由LazyWriteDaemon完成, 前面的daemon可以不用关心。 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制1 4 关键技术分析关键技术分析 4.1 业务模型分析业务模型分析 4.1.1目标用户目标用户 针对 QQ 用户群中细分的青少年人群低年龄层用户群 4.1.2用户入口用户入口 桌面 QQ 面板上的宠物图标 4.1.3消费系统策略消费系统策略 宠物元宝和元宝帐户 宠物元宝由用户打工或者进行某些任务后得到,相当于免费赠给用户的货币。用户可 以使用元宝购买宠物系统中的物品 宠物元宝和 QB 的关系 当用户的元宝数量不足时,可以直接使用个人帐户中的 Q 币来支付购买所需的金额。 这种情况下,1QB 相当于 100 元宝。 由于宠物系统中的物品定价使用元宝,大多数都不超过 100 元宝,因此,相当于非常 小额的 QB 交易。这就体现出了宠物系统的消费特点:小金额,大交易量。 4.1.4产品依赖关系产品依赖关系 QQ 上的入口和表现形式 其他业务使用的开通宠物的接口 4.1.5典型业务过程典型业务过程 典型操作 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制2 1.通过 QQ 面板打开宠物客户端 2.宠物客户端检查是否需要升级,取得领养关系,取得是否需要升级资源包,完成必要的下载 升级,登录 3.登陆后显示宠物目前的状态,如果饥饿提示用户要喂食,疾病和清洁状况都有类似的提醒。 4.用户使用快速喂食界面或者进入社区,在储藏室里选出食物等物品给宠物使用(或食用) 5.用户进入社区给宠物看病 6.用户进入社区购买宠物使用的物品 7.用户在社区中更换宠物的房屋 8.用户在社区中学习宠物炫 9.用户在社区中打工挣取宠物元宝 10. 用户在社区中查看排名 11. 用户在社区中查看其他宠物的资料 12. 用户在社区中管理自己的物品 13. 用户在社区中管理自己的元宝帐户 14. 用户在社区中求婚,查看求婚和被求婚记录,结婚。 15. 用户查看自己的宠物蛋信息,赠送宠物蛋给好友。 4.2 用户模型分析用户模型分析 4.2.1用户基础信息用户基础信息 按照每台机器承受 5 万只宠物同时在线,承受 20 万只宠物的资料查询请求来计算。大约 600 次交互/ 秒 喂养:Hello 包 200 次/秒(每用户 5 分钟一次) 喂食,洗澡和吃药:30 次/秒(每用户每小时/2 次) 通过 Web 的交互:20 次/秒 客户端刷新:50 次/秒(每用户每小时 3-4 次) 登录:10 次/秒 push 消息:50 次/秒(饿,脏,病,成长等等都会下发 push 消息) 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制3 Info 查看:120 次/秒 (每台机器 5 万在线 x8 = 40 万) x 100 好友/每人 x 1/10 一小 时内会查看一次 CGI 请求 :150 次/万人/秒,使用 6 台机器,一台 WebServer 可以支撑 2.5 万在线,大约 每秒 250 次 cgi 请求。 DB 数据量 每个用户的数据包括: 1.宠物的基本信息表(每个宠物一条记录) 2.宠物的成长信息表(每个宠物一条记录) 3.喂养物品表(每种物品一条记录) 4.装扮物品表(每种物品一条记录) 5.打工信息表(每次打工一条记录) 字典表: 喂养物品,打工场景,宠物炫,装扮物品,处方,规则等等 10 万新用户在一小时以内使用宠物客户端大约每秒 60 次请求。 宠物客户端 250K 大小,资源包 2M 左右。在控制总量而不是放开领养请求的情况下, 每天增加 2 万新用户,最多每天增加 10 万新用户。 4.2.2用户操作信息用户操作信息 登录和维持在线/喂养流程: 1.客户端向领养关系 server 请求 uin 对应的 petid,每个请求大小 100byte,返回包 150byte 2.客户端向 OnlineServer 发送登录请求包,每个包 100bytes 3.OnlineServer 向 DB 请求 load 数据,数据包 300bytes 4.OnlineServer 将登陆后的状态信息返回客户端,数据包大小也是 300byte 5.客户端向 OnlineServer 发送 hello 包,数据大小 80byte 6.OnlineServer 向客户端回应 hello 包,数据大小 300byte 7.状态机 server 向 QQ 发送宠物状态改变的 push 消息,数据大小 200byte 8.客户端向 OnlineServer 发送喂食、洗澡、吃药请求,数据大小 100byte 9.OnlineServer 返回消耗物品后的结果,数据包大小 300bytes 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制4 需要访问 Online 服务器: 85 次/(用户*天) , web 操作: web 操作是用户访问宠物社区所进行的操作,包括查看和管理属性,查看和管理物品道具技能,查看 元宝帐户,购买物品,学习技能,装扮,打工,结婚等等。 需要访问 WebServer:100 次/(用户*天) 需要访问 WebOnline:10 次/(用户*天) 由于 web 上的静态对象不通过宠物系统,而是分布在专门的图片 server 上,因此 web 访问产生的 流量可以忽略不计 4.2.3用户流量信息用户流量信息 主要产生流量的是资源下载和客户端下载。 峰值每小时新增 1 万用户,资源包大小为 3M,平均每个下载耗时 3 分钟,观察到的流量峰值达到 250Mbp 4.3 系统模型分析系统模型分析 一个典型的登录交互时序如下: 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制5 PetClientPetAdoptMapServer 检查是否有领养关系 返回领养关系 返回登录成功 PetServer(gw, online, state) hello hello是否超时 检查本地领养标志位 选择一个领养了的宠物 登录 写入session 状态改变流程 PetStateManagerTimerPetClient SetTimer StateServe CallBack timeout routine TimeOut 改变动态属性值 改变属性值的消息 腾讯科技(深圳)有限公司腾讯科技(深圳)有限公司 版权所有版权所有 不得复制不得复制6 4.4 性能容量分析性能容量分析 公式公式计算结果计算结果备注备注 存储要求存储要求(每人的 item 和合 成图片的个数)*每个文 件平均大小*注册用户数 20K*1.2 *10M= 420G 在线在线 server 要求要求每 5w 人内存使用 4 CPU loading 200M 1 带宽要求(内网)带宽要求(内网) (server 间交互次数 * 平 均数据包大小*2) 18K * 1K * 2 * 8 = 300mbps 计算的峰值时的出带宽 带宽要求(外网)带宽要求(外网) 下载带宽200mbps计算每天放出 10w 的峰 值时的出带宽 机器要求机器要求 关键负荷分析关键负荷分析在线 server 计算量 4.4.1总计总计 每增加 20w 免费用户需要: DB + Middled + NFS 一台 Online 一台 Web 两台 4.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论