免费智能真题库 > 历年试卷 > 系统架构设计师 > 2019年下半年 系统架构设计师 下午试卷 案例
  第4题      
  知识点:   关系数据库   内存   数据库   系统性能   业务系统

 
【说明】
某初创企业的主营业务是为用户提供高度个性化的商品订购业务,其业务系统支持PC端、手机App等多种访问方式。系统上线后受到用户普遍欢迎,在线用户数和订单数量迅速增长,原有的关系数据库服务器不能满足高速并发的业务要求。
为了减轻数据库服务器的压力,该企业采用了分布式缓存系统,将应用系统经常使用的数据放置在内存,降低对数据库服务器的查询请求,提高了系统性能。在使用缓存系统的过程中,企业碰到了一系列技术问题。
 
问题:4.1   该系统使用过程中,由于同样的数据分别存在于数据库和缓存系统中,必然会造成数据同步或数据不一致性的问题。该企业团队为解决这个问题,提出了如下解决思路:应用程序读数据时,首先读缓存,当该数据不在缓存时,再读取数据库;应用程序写数据吋,先写缓存,成功后再写数据库;或者先写数据库,再写缓存。
王工认为该解决思路并未解决数据同步或数据不一致性的问题,请用100字以内的文字解释其原因。
王工给出了一种可以解决该问题的数据读写步骤如下:
读数据操作的基本步骤:
1.根据key读缓存;
2.读取成功则直接返回;
3.若key不在缓存中时,根据key   (a)   
4.读取成功后,   (b)   
5.成功返回。
写数据操作的基本步骤:
1.根据key值写   (c)   
2.成功后   (d)   
3.成功返回。 .
请填写完善上述步骤中(a)~(d)处的空白内容。
 
问题:4.2   缓存系统一般以key/value形式存储数据,在系统运维中发现,部分针对缓存的杳询,未在缓存系统中找到对应的key,从而引发了大量对数据库服务器的查询请求,最严重时甚至导致了数据库服务器的宕机。 经过运维人员的深入分析,发现存在两种情况: (1)用户请求的key值在系统中不存在时,会查询数据库系统,加大了数据库服务器的压力; (2)系统运行期间,发生了黒客攻击,以大量系统不存在的随机key发起了査询请求,从而导致了数据库服务器的宕机。 经过研究,研发团队决定,当在数据库中也未查找到该key时,在缓存系统中为key设置空值,防止对数据库服务器发起重复查询。 请用100字以内文字说明该设置空值方案存在的问题,并给出解决思路。
 
问题:4.3   缓存系统中的key—般会存在有效期,超过有效期则key失效;有时也会根据LRU算法将某些key移出内存。当应用软件查询key时,如key失效或不在内存,会重新读取数据库,并更新缓存中的key。
运维团队发现在某些情况下,若大量的key设置了相同的失效时间,导致缓存在同一时刻众多key同时失效,或者瞬间产生对缓存系统不存在key的大量访问,或者缓存系统重启等原因,都会造成数据库服务器请求瞬时爆量,引起大量缓存更新操作,导致整个系统性能急剧下降,进而造成整个系统崩溃。
请用100字以内文字,给出解决该问题的两种不同思路。
 
 
 

   知识点讲解    
   · 关系数据库    · 内存    · 数据库    · 系统性能    · 业务系统
 
       关系数据库
               关系模型概述
               关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。关系模型的数据结构单一,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。关系模型中常用的关系操作包括选择、投影、连接、除、并、交、差等查询操作,和增加、删除、修改操作两大部分。早期的关系操作能力通常用关系代数和关系演算来表示,关系代数是用对关系的运算来表达查询要求的方式,关系演算是用谓词来表达查询要求的方式。另外还有一种介于关系代数和关系演算之间的语言SQL,它不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是关系数据库的标准语言。
               关系数据结构及形式化定义
               首先介绍一些概念:
               (1)域(Domain):域是一组具有相同数据类型的值的集合。
               (2)笛卡尔积(Cartesian Product):给定一组域D1, D2,…,Dn,这些域中可以有相同的。D1,D2,…,Dn的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn) |di∈Di, i=1,2,…,n}其中每一个元素(d1,d2,…,dn)叫做一个n元组或简称元组。元素中的每一个值di叫做一个分量。笛卡尔积可以用来表示二维表,表中的每行对应一个元组,每列对应一个域。
               (3)关系(Relation):D1×D2×…×Dn的子集叫做在域D1,D2,…,Dn上的关系,表示为R (D1, D2,…,Dn),这里R表示关系的名字,n是关系的目或度(Degree),关系中的每个元素是关系中的元组。
               关系是笛卡尔积的有限子集,所以关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。一个元组就是该关系所涉及的属性集的笛卡尔积的一个元素。由于在笛卡尔积的定义中,域是可以相同的,所以为了加以区分,必须对每个列起一个名字,称之为属性,n目关系必须有n个属性。若关系中的某一属性组的值能够唯一标识一个元组,则称该属性组为候选码(Candidate Key)。若一个关系有多个候选码,则选定其中之一为主码(Primary Key)。主码的各个属性称为主属性(Prime Attribute)。不包含在任何候选码中的属性称为非码属性(Non-key Attribute)。当关系模式的所有属性组是这个关系模式的候选码时,称为全码(All-Key)。
               关系的完整性
               (1)实体完整性。
               若属性A是基本关系R的主属性,则属性A不能取空值。也就是说基本关系得所有主属性都不能取空值,而不仅是主码整体不能取空值。
               (2)参照完整性。
               现实世界中的实体之间往往存在某种联系,在关系模型中实体之间的联系用关系描述,这样就会存在着关系间的引用。例如,学生、课程、选课三个关系如下:
               学生(学号,姓名,性别,专业)
               课程(课程号,课程名,教师,学分)
               选课(学号,课程号,成绩)
               它们之间是多对多联系,存在着属性的引用,即选课关系引用了学生关系的主码和课程关系的主码,如画线所示。在选课关系中必须满足:①选课关系中的“学号”值必须是确实存在的学生的学号,即在学生关系中有该学生的记录;②选课关系中“课程号”也必须确实存在,即课程关系中有该课程的记录。也就是说,选课关系中某些属性的取值需要参照其他关系的属性的取值。
               设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码KS相对应,则称F是基本关系R的外码,并称基本关系R为参照关系,基本关系S为被参照关系或目标关系,关系R和S不一定是不同的关系。在上例中,“学号”和“课程号”是选课关系的外码,学生关系和课程关系是被参照关系,选课关系是参照关系。
               参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码KS相对应(关系R和S不一定是不同的关系),则对于R中每个元组在F上的值或者取空值或者等于S中某个元组的主码值。
               (3)用户定义的完整性
               用户定义的完整性就是针对某一具体关系数据库的约束条件。例如属性的取值范围、属性间必须满足一定的函数关系等。
 
       内存
        除了CPU,内存也是影响系统性能的最常见的瓶颈之一。看系统内存是否够用的一个重要参考就是分页文件的数目,分页文件是硬盘上的真实文件,当操作系统缺少物理内存时,它就会把内存中的数据挪到分页文件中去,如果单位时间内此类文件使用频繁(每秒个数大于5),那就应该考虑增加内存。具体考察内存的性能的参数包括内存利用率、物理内存和虚拟内存的大小。
 
       数据库
        数据库(DataBase,DB)是指长期存储在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。
        系统使用的所有数据存储在一个或几个数据库中。
 
       系统性能
               系统性能定义和指标
               计算机系统性能指标以系统响应时间和作业吞吐量为代表。响应时间(Elapsed Time)是指用户从输入信息到服务器完成任务给出响应的时间,即计算机系统完成某一任务(程序)所花费的时间,比如存储器访问、输入/输出等待、操作系统开销等。作业吞吐量是整个服务器在单位时间内完成的任务量。假定用户不间断地输入请求,则在系统资源充裕的情况下,单个用户的吞吐量与响应时间成反比,即响应时间越短,吞吐量越大。为了缩短某一用户或服务的响应时间,可以分配给它更多的资源。性能调整就是根据应用要求和服务器具体运行环境和状态,改变各个用户和服务程序所分配的系统资源,充分发挥系统能力,用尽量少的资源满足用户要求,达到为更多用户服务的目的。
               计算机性能的其他常用指标还包括MIPS (Million Instruction Per Second)和MFLOPS(Million Floating-point Instruction Per Second)。
               (1) MIPS=指令数/(执行时间×1000000)。
               其主要特点如下:
               ① MIPS大小和指令集有关,不同指令集的计算机间的MIPS不能比较。
               ②在同一台计算机上MIPS是变化的,因程序不同而变化。
               ③有时MIPS指标会出现矛盾。
               ④主要适用于带有硬件浮点处理器的计算机。
               ⑤MIPS中,除包含运算指令外,还包含取数、存数、转移等指令在内。
               ⑥MIPS只适宜于评估标量机。
               ⑦相对MIPS指相对参照机而言的MIPS,通常用VAX-11/780机处理能力为1MIPS。
               (2)MFLOPS=浮点指令数/(执行时间×1000000)。
               ①与机器和程序有关。
               ②测量浮点运算时,比MIPS准确。
               ③MFLOPS比较适宜于评估向量计算机。
               ④MFLOPS与MIPS关系:1MFLOPS≈3MIPS。
               ⑤MFLOPS仅仅只能用来衡量计算机浮点操作的性能,而不能体现计算机的整体性能。例如编译程序,不管计算机的性能有多好,它的MFLOPS不会太高。
               ⑥MFLOPS是基于操作而非指令的,所以它可以用来比较两种不同的计算机。
               ⑦MFLOPS依赖于操作类型。例如100%的浮点加要远快于100%的浮点除。
               ⑧单个程序的MFLOPS值并不能反映计算机的性能。
               系统性能评估
               计算机性能评价技术可用于开发中和开发后的系统评价。主要包括三种技术:分析技术、模拟技术、测量技术。
                      分析技术
                      分析技术是在一定假设条件下,计算机系统参数与性能指标参数之间存在着某种函数关系,按其工作负载的驱动条件列出方程,用数学方法求解。其特点是具有理论的严密性,节约人力和物力,可应用于设计中的系统。它的数学工具主要是利用排队论模型进行分析。
                      模拟技术
                      模拟技术首先是对于被评价系统的运行特性建立系统模型,按系统可能有的工作负载特性建立工作负载模型;随后编写模拟程序,模仿被评价系统的运行;设计模拟实验,依照评价目标,选择与目标有关因素,得出实验值,再进行统计、分析。其特点在于可应用于设计中或实际应用中的系统,可与分析技术相结合,构成一个混合系统。分析和模拟技术最后均需要通过测量技术验证。
                      测量技术
                      测量技术则是对于已投入使用的系统进行测量,通常采用不同层次的基准测试程序评估。其评估层次包括实际应用程序、核心程序、合成测试程序三个层次,但必须均为国际性组织认可的程序,同时需要对评估结果进行分析和统计以保证其准确性。
                      常用的国际认可的用来测试机器性能的测试基准测试程序(按评价准确性递减的顺序):
                      (1)实际的应用程序方法。
                      运行例如C编译程序、Tex、字处理软件、CAD工具等。
                      (2)核心基准程序方法。
                      从实际的程序中抽取少量关键循环程序段,并用它们来评价计算机的性能。
                      (3)简单基准测试程序。
                      简单基准测试程序通常只有10~100行而且运行结果是可以预知的。
                      (4)综合基准测试程序。
                      为了体现平均执行而人为编制的,类似于核心程序,没有任何用户真正运行综合基准测试程序。
 
       业务系统
        该重工集团有自己的管理模型。顶端按照工业4.0,集团管控,包括阿米巴经营模式;相应的流程制度,岗位职责,工作标准,成本绩效。左边是信息化管控,右边是智能化建设,下面是精益管理,底下是企业文化。这样的管理需要用信息化系统去实现。
        在这架构中,ERP系统是基础,利用CRM系统和客户对接,SRM管理供应链,MES监控生产。利用OA把所有业务打通,而后利用专业软件,实现前端的商务智能分析。
        下图的物联网设想把MES系统和机床、物流以及检测设备连起来,做成物联化,把ERP升级到CRM或者SCRM,把供应商和客户打通,形成企业的互联网。
        
        智能工厂物联网体系
        下图是整个业务系统的总体架构图。一个平台、两级部署、三层应用,包括商业分析、移动应用、企业门户和协同管理。
        
        智能工厂业务系统整体架构
        在业务系统这块,先后上线了ERP系统、PLM系统、OA系统和MES系统。上线的这些系统,虽然参与了生产、管理,打通了业务,却没有让领导层参与,反馈报告依然采用Excel、PPT。作为决策者,领导层更应该参与数据的可视化呈现过程。所以,2014年上线了帆软报表系统,提升了数据前端展示,利用某报表软件承担的BOSS系统决策,将领导层纳入管理体系。
   题号导航      2019年下半年 系统架构设计师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第4题    在手机中做本题