阅读以下关于Web 应用系统负载均衡的问题,在答题纸上回答问题1至问题3。
某电子商务公司的主要业务是书籍、服装、家电和日用品的在线销售。随着公司业务发展和用户规模的不断扩大,现有的网上交易系统无法正常处理日益增大的请求流量,公司决策层决定升级其网上交易系统。在对该系统的升级方案进行设计和讨论时,公司的系统分析师王工提出采用基于高性能主机系统的方法进行系统升级,另外一位系统分析师李工则提出采用基于负载均衡集群的方法进行系统升级。公司的分析师和架构师对这两种思路进行讨论与评估,最终采纳了李工的方法。 【问题 1】(9 分)
请从系统的可用性、可伸缩性和应用特点三个方面说明公司为何没有采用王工提出的方法。
【问题 2】(8 分)
负载均衡通常分为传输层负载均衡和应用层负载均衡两类。请基于这种分类方式,说明基于 DNS 的负载均衡方法和基于 HTTP 重定向服务器的负载均衡方法分别属于哪类负载均衡方法,并用200字以内的文字说明这两种方法实现负载均衡的方式。
【问题 3】(8 分)
在确定使用基于负载均衡集群的系统升级方法后,李工给出了一个基于LVS(Linux Virtual Server)的负载均衡集群实现方案。公司的系统分析师在对现有系统进行深入分析的基础上,认为以下两个实际情况对升级方案影响较大,需要对该方案进行改进。
1. 系统需要为在线购物提供购物车功能,用来临时存放选中的产品。
2. 系统需要保证向所有的VIP 用户提供高质量的服务。
针对上述描述,首先说明每种情况分别会引入哪些与负载均衡相关的问题,并用 200字以内的文字说明针对不同的问题,应该如何改进李工的解决方案。
正确答案及解析
正确答案
解析
试题分析本题考查的是Web应用系统设计、维护和升级的相关内容,主要考查系统负载均衡技术。
【问题1】
本问题考查Web应用系统升级时的方案选择问题。在Web应用中,服务器的处理能力和IO已经成为提供应用服务的瓶颈。由于涉及的信息量非常大,用户访问频率也高,许多基于Web的大型应用系统每秒钟需要处理下百万个甚至更多的请求。显然单台服务器有限的性能难以解决这个问题。
为了解决下述问题,采用高性能的主机系统(小型机或大型机)是可行的。但是,除了其价格昂贵、可扩展性差以外,这种主机系统在很多情况下也不能同时处理上百万个并发的请求。因为高速主机系统只是对于复杂单一任务和有限的并发处理显得高性能,而Internet中的Web应用绝大多数处理是简单任务、高强度并发处理。因此,即便有大量资金投入,采用高性能、高价格的主机系统,也不能满足Web应用的需要。
【问题2】
本问题主要考查负载均衡技术的分类和两种具体方法的掌握。负载均衡技术是集群系统中一项重要技术,可以提高集群系统的整体处理能力,也提高了系统的可靠性,最终目标是加快集群系统的响应速度,提高客户端访问的成功概率。
负载均衡通常分为传输层负载均衡和应用层负载均衡两类。基于DNS的负载均衡属于传输层负载均衡技术,其主要原理是在DNS服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。基于HTTP重定向服务器的负载均衡属于应用层负载均衡技术,其主要原理是服务器使用HTTP重定向指令,将一个客户端重新路山到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后重发请求,从而达到负载均衡的目的。
【问题3】
主要考查负载均衡技术的实际应用。在实际应用中,通常会将传输层负载均衡方法与应用层负载均衡方法结合起来使用,以提高系统整体的性能、可用性和可靠性。
题干描述中,第一种情况的描述说明系统需要提供应用会话数据支持。通常采用会话服务器(session server)机制在服务器端存放应用会话数据。但需要注意的是,应用会话数据大多数情况下是不可恢复的,因此采用支持应用会话数据容错的解决方案非常重要。
第二种情况的描述要求保证特定用户的服务质量。当数据量不断增长时,由于在会话服务器或缓存服务器,业务服务器和会话(或缓存)服务器之间可能会反复移动较大量的数据,从而无法保证服务质量。因此,通常的做法是基于应用层负载均衡器实现客户端联系(client affinity)将某个客户端的所有请求转发到相同的服务器上,使得一个用户会话的所有请求被同一服务器实例处理,从而保证服务质量。试题答案(5)【问题1】
王工提出的方案是采用高性能的主机系统实现系统升级。从可用性角度看,采用高性能的主机系统很难实现系统的冗余机制,当发生故障后会导致整个系统会失去响应能力,从而无法保证系统的高可用性;从可伸缩性角度看,采用高性能的主机系统,升级服务器的成本与获得的相应能力不成比例,整个系统的可扩展性较差;从应用特点来看,Internet中的Web应用绝大多数是简单任务、高强度的并发处理,而主机系统只是对于复杂单一任务和有限的并发处理具有高性能,不能同时处理大量的并发请求。因此,公司没有采用王工的方案。
【问题2】
基于DNS的负载均衡属于传输层负载均衡技术,其主要原理是在DNS服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。
基于HTTP重定向服务器的负载均衡属于应用层负载均衡技术,其主要原理是服务器使用HTTP重定向指令,将一个客户端重新路由到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后贡发请求,从而达到负载均衡的目的。
【问题3】
第一种情况的描述说明系统需要提供应用会话数据支持。通常采用会话服务器机制在服务器端存放应用会话数据。但需要注意的是,应用会话数据大多数情况下是不可恢复的,因此采用支持应用会话数据容错的解决方案非常重要。
第二种情况的描述要求保证特定用户的服务质量。当数据量不断增长时,由于在会话服务器或缓存服务器,业务服务器和会话(或缓存)服务器之间可能会反复移动较大量的数据,从而无法保证服务质量。因此,通常的做法是基于应用层负载均衡器实现客户端联系,将某个客户端的所有请求转发到相同的服务器,使得一个用户会话的所有请求被同一服务器实例处理,从而保证服务质量。
包含此试题的试卷
你可能感兴趣的试题
阅读以下关于Web系统架构设计的教述,在答题纸上回答问题1至问题3。
【说明】
某公司拟开发一个智能家居管理系统,该系统的主要功能需求如下:1)用户可使用该系统客户端实现对家居设备的控制,且家居设备可向客户端反馈实时状态;2)支持家居设备数据的实时存储和查询;3)基于用户数据,挖掘用户生活习惯,向用户提供家居设备智能化使用建议。
基于上述需求,该公司组建了项目组,在项目会议上,张工给出了基于家庭网关的传统智能家居管理系统的设计思路,李工给出了基于云平台的智能家居系统的设计思路。经过深入讨论,公司决定采用李工的设计思路。
【问题1】 (8分)
请用400字以内的文字简要描述基于家庭网关的传统智能家居管理系统和基于云平台的智能家居管理系统在网关管理、数据处理和系统性能等方面的特点,以说明项目组选择李工设计思路的原因。
【问题2】 (12分)
请从下面给出的(a) ~ (j) 中进行选择,补充完善图5-1中空(1) ~ (6)处的内容,协助李工完成该系统的架构设计方案。
(a) Wi-FI
(b) 蓝牙
?驱动程序
(d)数据库
(e)家庭网关
(f)云平台
(g)微服务
(h)用户终端
(i)鸿蒙
(j)TCP/IP
【问题3】 (5分)
该系统需实现用户终端与服务端的双向可靠通信,请用300字以内的文字从数据传输可靠性的角度对比分析TCP和UDP通信协议的不同,并说明该系统应采用哪种通信协议
- 查看答案
某医院拟委托软件公司开发一套预约挂号管理系统,以便为患者提供更好的就医体验,为医院提供更加科学的预约管理。本系统的主要功能描述如下:
(a)注册登录
(b)信息浏览
(c)账号管理
(d)预约挂号
(e)查询与取消预约
(F)号源管理
(g)报告查询
(h)预约管理
(i)报表管理
(j)信用管理
【问题1】 (6 分)
若采用面向对象方法对预约挂号管理系统进行分析,得到如图2-1所示的用例图。请将合适的参与者名称填入图2-1中的(1)和(2)处,使用题干给出的功能描述(a)(j),完善用例(3)(12)的名称,将正确答案填在答题纸上。
【问题2】 (10分)
预约人员(患者)登录系统后发起预约挂号请求,进入预约界面。进行预约挂号时使用数据库访问类获取医生的相关信息,在数据库中调用医生列表,并调取医生出诊时段表,将医生出诊时段反馈到预约界面,并显示给预约人员;预约人员选择医生及就诊时间后确认预约,系统反馈预约结果,并向用户显示是否预约成功。
采用面向对象方法对预约挂号过程进行分析,得到如图2-2所示的顺序图,使用题干中给出的描述,完善图2-2中对象(1),及消息(2)~(4)的名称,将正确答案填在普题纸上请简要说明在描述对象之间的动态交互关系时,协作图与顺序图存在哪些区别?
【问题3】 (9分)
采用面向对象方法开发软件,通常需要建立对象模型、动态模型和功能模型,请分别介绍这3种模型,并详细说明它们之间的关联关系,针对上述模型,说明哪些模型可用于软件的需求分析?
- 查看答案
阅读以下关于数据库设计的叙述,在答题纸上回答问题1至问题3。
【说明】
某医药销售企业因业务发展,需要建立线上药品销售系统,为用户提供便捷的互联网药品销售服务、该系统除了常规药品展示、订单、用户交流与反馈功能外,还需要提供当前热销产品排名、评价分类管理等功能。通过对需求的分析,在数据管理上初步决定采用关系数据库(MySQL)和数据库缓存(Redis)的混合架构实现。
经过规范化设计之后,该系统的部分数据库表结构如下所示。
供应商(供应商ID,供应商名称,联系方式,供应商地址);
药品(药品ID,药品名称,药品型号,药品价格,供应商ID);
药品库存(药品ID,当前库存数量);
订单(订单号码,药品ID,供应商ID,药品数量,订单金额)。
【问题1】 (9分)
在系统初步运行后,发现系统数据访问性能较差。经过分析,刘工认为原来数据库规范化设计后,关系表过于细分,造成了大量的多表关联查询,影响了性能。例如当用户查询商品信息时,需要同时显示该药品的信息、供应商的信息、当前库存等信息。
为此,刘工认为可以采用反规范化设计来改造药品关系的结构,以提高查询性能。修改后的药品关系结构为:
药品(药品ID,药品名称,药品型号,药品价格,供应商ID,供应商名称,当前库存数量) ;
请用200字以内的文字说明常见的反规范化设计方法,并说明用户查询商品信息应该采用哪种反规范化设计方法
【问题2】 (9分)
王工认为,反规范化设计可提高查询的性能,但必然会带来数据的不一致性问题。请用200字以内的文字说明在反规范化设计中,解决数据不一致性问题的三种常见方法,并说明该系统应该采用哪种方法。
【问题3】 (7分)
该系统采用了Redis来实现某些特定功能(如当前热销药品排名等),同时将药品关系数据放到内存以提高商品查询的性能,但必然会造成Redis和MySQL的数据实时同步问题。
(1) Redis的数据类型包括String、 Hash、 List、 Set和ZSet等,请说明实现当前热销药品排名的功能应该选择使用哪种数据类型。
(2)请用200字以内的文字解释说明解决Redis和MySQL数据实时同步问题的常见方案
- 查看答案
某公司拟开发一套机器学习应用开发平台,支持用户使用浏览器在线进行基于机器学习的智能应用开发活动。该平台的核心应用场景是用户通过拖拽算法组件灵活定义机器学习流程,采用自助方式进行智能应用设计、实现与部署,并可以开发新算法组件加入平台中。在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)平台用户分为算法工程师、软件工程师和管理员等三种角色,不同角色的功能界面有所不同;
(b)平台应该具备数据库保护措施,能够预防核心数据库被非授权用户访问;
(c)平台支持分布式部署,当主站点断电后,应在20秒内将请求重定向到备用站点;
(d)平台支持初学者和高级用户两种界面操作模式,用户可以根据自己的情况灵活选择合适的模式;
(e)平台主站点宕机后,需要在15秒内发现错误并启用备用系统;
(f)在正常负载情况下,机器学习流程从提交到开始执行,时间间隔不大于5秒;
(g)平台支持硬件扩容与升级,能够在3人天内完成所有部署与测试工作;
(h)平台需要对用户的所有操作过程进行详细记录,便于审计工作;
(i)平台部署后,针对界面风格的修改需要在3人天内完成;
(j)在正常负载情况下,平台应在0.5秒内对用户的界面操作请求进行响应;
(k)平台应该与目前国内外主流的机器学习应用开发平台的界面风格保持一致;
(l)平台提供机器学习算法的远程调试功能,支持算法工程师进行远程调试。
在对平台需求、质量属性描述和架构特性进行分析的基础上,公司的架构师给出了三种候选的架构设计方案,公司目前正在组织相关专家对平台架构进行评估。
【问题1】 (9分)
在架构评估过程中,,质量属性效用树(utility tree)是对系统质属性进行识别和优先级排序的重要工具。 请将合适的质量属性名称域入图1-1中(1)、(2)空白处,并从题干中的(a)-(i)中选择合适的质量属性描述,填入(3)-(6)空白处,完成该平台的效用树。
【问题2】 (16分)
针对该系统的功能,赵工建议采用解释器(interpreter)架构风格,李工建议采用管道过滤器(ppe-and-hlter)的架构风格,王工则建议采用隐式调用(implicit invocation)架构风格。请针对平台的核心应用场景,从机器学习流程定义的灵活性和学习算法的可扩展性两个方面对三种架构风格进行对比与分析,并指出该平台更适合采用哪种架构风格
- 查看答案
某项目进入详细设计阶段后,项目经理为后续活动制定了如图2所示的网络计划图,图中的“△”标志代表开发过程的一个里程碑,此处需进行阶段评审,模块1和模块2都要通过评审后才能开始修复。
项目经理对网络图中的各活动进行了成本估算,估计每人每天耗费的成本为1000元,安排了各活动的人员数量并统计了模块1、模块2的开发和测试活动的工作量(如表2所示),其中阶段评审活动不计入项目组的时间和人力成本预算,如表2所示。
[问题1] (3分)
请计算该项目自模块开发起至模块测试全部结束的计划工期。
[问题2] (10分)
详细设计完成后,项目组用了11天才进入阶段评审。在阶段评审中发现:模块1开发已完成,测试尚未开始;模块2的开发和测试均已完成,修复工作尚未开始,模块2的实际工作量比计划多用了3人?天。
(1)请计算自详细设计完成至阶段评审期间模块1的PV、EV、AC,并评价其进度和成本绩效。
(2)请计算自详细设计完成至阶段评审期间模块2的PV、EV、AC,并评价其进度和成本绩效。
[问题3] (8分)
(1)如果阶段评审未作出任何调整措施,项目仍按当前状况进展,请预测从阶段评审结束到软件集成开始这一期间模块l、模块2的ETC(完工尚需成本)(给出公式并计算结果)。
(2)如果阶段评审后采取了有效的措施,项目仍按计划进展,请预测从阶段评审结束到软件集成开始这一期间模块1、模块2的ETC(完工尚需成本)(给出公式并计算结果)。
[问题4] (4分)
请结合软件开发和测试的一般过程,指出项目经理制定的网络计划和人力成本预算中存在的问题。
- 查看答案