平台服务器测试1—服务器结构分析

发表于:2011-10-28 14:37

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:陈道学    来源:51Testing软件测试网采编

分享:

  〖ActiveMQ〗

  ◆ 提供消息队列

  ActiveMQ的主要作用就是在比赛成绩排名功能中,提供消息队列供应用服务器使用。要实现成绩排名功能的通俗做法是:当玩家每次上传比赛成绩时,就将此玩家与其他玩家的成绩进行排序,然后更新数据库表信息,同时返回结果给客户端显示,但这种实时性的实现方式会造成多个玩家踊跃比赛时,会有很多成绩上传至平台服务器要求处理,服务器的压力将会随着用户比赛次数的增多而逐渐加大,并且实际环境中还会有其他玩家的登录、获取资料等请求,并发请求的增多也会造成平台服务器事务失败率加大,对服务器性能有严重的影响。

  于是在这种功能需求的环境下,AcitveMQ闪亮登场了,假设有A、B、C三个玩家需要进行比赛成绩排名,A玩家比赛结束后上传自己的成绩时,应用服务器接收到请求消息,会通过发送模块将A玩家此时的比赛成绩放入ActiveMQ的消息队列中记为A1,同理如果A玩家再次上传比赛成绩或B玩家、C玩家上传自己的比赛成绩,应用服务器发送模块则会将此次成绩按照上传时间先后依次记为A2、B1、C1放入ActiveMQ的消息队列中,待应用服务器未收到客户端请求需要即时处理时,就会将ActiveMQ消息队列中的A1、B1、C1、A2等记录依次取出然后进行排序,排序之后处理结果会放入数据库中的玩家信息表进行相应更新,待客户端发送玩家比赛排名更新请求时,应用服务器就会将数据库中的结果返回给客户端进行显示,此时的比赛成绩排名不是即时性的,但不会因为并发过多,导致响应太慢,甚至排名出现错误。

  『接口解析』

  整个平台服务器的架构、服务组件功能、处理过程基本已经了解,但客户端发送HTTP请求时,服务器如何解析请求还需进一步说明,以大厅客户端查询用户的基本资料为例:

  「请求消息头内容」

Response  Headers

Value

Request-Line

POST  /outer/server.action  HTTP/1.1

HOST

us.host.com

Accept

*/*

Content-Length

116

Content-Type

application/x-www-form-urlencoded

  通过客户端请求消息头,服务器知道这是使用HTTP  1.1通讯协议的动态请求(Request-Line),参数包含在HTTP请求消息体中(POST方式),并且服务器的IP地址和端口号已经指明(HOST域名解析)。

  「客户端请求消息体」

userID=331047&webKey=e7a2cc9d869c51bbbb41d499a214c658d786cd8fd3e5aa5758fc3f5d04085825&key=queryUserInfo&version=V1.8

  通过请求消息体用“&”分隔的参数,服务器知道需要将ID为331047的用户(userID)的基本资料(key=queryUserInfo)查询出来,此用户已登录v1.8版本的客户端(version),并通过服务器验证(webkey验证),操作合法。

43/4<1234>
价值398元的测试课程免费赠送,填问卷领取吧!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2022
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号