系统架构师下午案例分析历年必考总结

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.可靠性(Reliability)是指产品在规定的条件下和规定的时间内完成规定功能的能力。

子特性:成熟性,容错性,易恢复性,可靠性的依从性。

1.

提高可靠性的技术:

(1)N版本程序设计(2) 恢复块方法(3) 防卫式程序设计(4)双机热备或集群系统(5)冗余设计

【问题1】

(1) 针对特定应用系统,难度较大(2) 数据冗余较大

(3) 以应用为中心管理数据(4) 数据库系统接口标准化,易于在不同应用之间共享数据

3)中介:提供位置透明的路由和定位服务;提供多种消息传递形式;支持广泛使用的传输协议。

4)多服务集成方式:如JCA,Web服务,Messaging ,Adaptor等.

5)服务和事件管理支持:调用服务的记录、测量和监控数据;提供事件检测、触发和分布功能;

ESB 中最常提到的两个功能是消息转换和消息路由。

一条总线一个时刻,只允许一个设备接收,但允许多个设备发送

5.项目计划应该包括什么内容

(1)项目背景

(2)项目经理、项目经理的主管领导、客户方联系人、客户方的主管领导,项目领导小组(项目管理团队)和项目实施小组人员

(3)项目的总体技术解决方案

(4)所选择的项目管理过程及执行水平

(5)对这些过程的工具、技术和输入输出的描述

(6)选择的项目的生命周期和相关的项目阶段

(7)项目最终目标和阶段性目标

(8)进度计划

(9)项目预算

(10)变更流程和变更控制委员会

(11)对于内容、范围和时间的关键管理评审,以便于确定悬留问题和未决决策

6.基于DNS的负载均衡与基于反向代理的负载均衡

基于DNS的负载均衡是在DNS服务器中为同一个主机名配置多个IP 地址,在应答DNS 查询时,DNS 服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。

反向代理负载均衡。反向代理负载均衡是将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的。

6.数据库分区可采用水平分区和垂直分区两种方式

本系统应采用水平分区,因为社交网络数据库的数据表记录数量非常庞大,而且记录的访问,大多集中于本地区域,所以水平分区能极大提高处理效率。

7.引入主从复制机制给系统带来的好处

主从复制机制使得同样的数据,存在多个副本,这样让用户查询数据时,可以选择该数据最

8.请结合已知信息从缓存架构、缓存有效性及缓存数据类型等方面分析使用Memcached代替数据库

查询缓存的原因

Memcached相比数据库查询缓存:

缓存架构:数据库缓存只是将查询结果进行缓存,适用面很窄,而Memcached是将数据库中的表进行缓存,对于在这些表之上的操作均可适用。

缓存有效性:Memcached缓存时效较长,只要未更新,就属于有效状态,而数据查询缓存时效较短(具体

时效与配置有关),所以在此方面Memcached有优势。

缓存数据类型:Memcached缓存数据为表级,而数据库查询缓存为元组级。

9.项目计划书的内容

项目提出的背景和必要性、国内外市场分析、项目主要开发和建设内容、项目实施的技术方案、项目实施的现有基础、项目组织机构和人员安排、、项目实施进度计划、项目资金需求及来源、项目经济和社会效益分析、项目风险分析及应对措施

10.要缩短项目的工期,主要有两种方法:

赶工:对成本和进度进行权衡,确定如何尽量少增加费用的前提下最大限度地缩短项目所需要的时间,称为赶进度也称赶工。

快速跟进:调整逻辑关系,通过对各种逻辑关系并行确定来缩短项目周期。在进行项目设计中,当风险不大时,通过精心安排而使项目的前后阶段相互搭接以加快项目进展速度的做法叫快速跟进。

4.公钥加密与简单密码加密

(1)基于口令的认证方式实现简单,但由于口令复杂度及管理方面的原因,易受到认证攻击;而在基于公钥体系的认证方式中,由于其密钥机制的复杂性,同时在认证过程中私钥不在网络上传输,因此可以有效防止认证攻击,与基于口令的认证方式相比更为安全。

(2)按照需求描述,在完成用户身份鉴别后,需依据用户身份进一步对业务数据进行安全保护,且受保护数据中包含用户私有的终端机数据文件,在基于口令的认证方式中,用户口令为用户和认证服务器共享,没有用户独有的直接秘密信息,而在基于公钥的认证方式中,可基于用户私钥对私有数据进行加密保护,实现更加简便。

(3)基于公钥体系的认证方式协议和计算更加复杂,因此其计算复杂度要高于基于口令的认证方式,但业务环境的总用户数据在100人以内,用户规模不大,运行环境又为局域网环境,因此基于公钥体系的认证方式可以满足平台效率要求。

5.加密解密过程

应采用流加密方式。因为需求中提及“单个敏感数据文件可能会达到数百兆的规模”,文件数据量较大,使用流加密方式可以获得更高的加解密效率。

数据加密与解密过程如下:

其加密过程为:首先生成一个对称密钥,使用用户公钥加密这个对称密钥后存储在文件头,然后用生成的对称密钥加密文件数据存储。

其解密过程为:用户首先使用自己的私钥解密被加密的对称密钥,再用该对称密钥解密出数据原文。

6.目前数据库管理系统提供的基本数据加密支持主要有以下两种:

(1)加解密API:数据库管理系统提供可在SQL语句中调用的加解密API,应用可以利用这些API 构建自己的基础架构,对数据进行加密保护。

(2)透明加密:安全管理员为数据库敏感字段选择加密方式及密钥强度,应用访问受保护数据时只需使用口令打开或关闭密钥表,对数据的加密和解密由数据库管理系统自动完成。

加解密API方式的灵活性强,但构建和管理复杂;而透明加密方式管理简单,应用程序负担轻,但灵活性较差。用户要求尽可能减少安全管理与应用程序的负担,因此应选择透明加密方式。

7.关系型数据库的弊端与NOSQL数据库比较

(1)用户执行读写操作时,响应时间均变得很慢;

(2)随着系统功能的扩充,原有数据格式发生变化,又出现新的数据格式,维护困难;

(3)数据容量很快超过系统原有的设计上限,数据库扩容困难;

(4)软件系统不断出现宕机,整个系统可用性较差。

其原因主要是:

(1)用户响应时间慢。大型社交网络系统要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强可以,但是应付上万次SQL写数据请求,硬盘I/O就已经无法承受了。特别是涉及到多表连接操作,会导致响应变慢。

(2)数据格式变化。大型社交网络系统随着用户的使用,会不断地增加新的功能,导致原有数据格式发生变化,甚至出现新的数据格式。但关系数据库中采用元组方式组织数据,难以使用新型数据格式,难以维护。

(3)数据容量超过设计上限。对于大型社交网络系统,往往会在很短时间内产生海量数据。关系数据库多采用中央数据存储,使得数据容量受限于前期设计的上限,很难实现数据容量的横向扩展。

(4)系统可用性差:关系数据库采用中央数据存储,容易成为系统的性能瓶颈,单点故障很容易导致系统崩溃,负载过高往往导致系统出现宕机现象。

【问题2】

针对问题(1),NoSQL数据库支持高并发数据访问,性能较高。

针对问题(2),NoSQL数据库的数据存储结构松散,能够灵活支持多种类型的数据格式。

针对问题(3),NoSQL数据库能够支持海量数据的存储,且易于横向扩展。

针对问题(4),NoSQL数据库基于分布式数据存储,不存在单点故障和性能瓶颈,系统可用性高。【问题2】该系统采用NoSQL数据库时可能存在的问题有:

(1)NoSQL数据库的现有产品不够成熟,大多数产品处于初创期。

(2)NoSQL数据库并未形成一定的标准,产品种类繁多,缺乏官方支持。

(3)NoSQL数据库不提供对SQL的支持,学习和应用迁移成本较高。

(4)NoSQL数据库支持的特性不够丰富,现有产品提供的功能比较有限。

相关文档
最新文档