系统架构师下午案例分析历年必考总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.可靠性(Reliability)是指产品在规定的条件下和规定的时间内完成规定功能的能力。
子特性:成熟性,容错性,易恢复性,可靠性的依从性。
1.
提高可靠性的技术:
(1)N版本程序设计(2) 恢复块方法(3) 防卫式程序设计(4)双机热备或集群系统(5)冗余设计
【问题1】
(1) 针对特定应用系统,难度较大(2) 数据冗余较大
(3) 以应用为中心管理数据(4) 数据库系统接口标准化,易于在不同应用之间共享数据
【问题2】
(1)关系模式 (2)读写时先从磁盘读入内存,再读写,性能相对较低
(3)运行时整个数据库基本全调入内存,数据库容量受内存容量限制,容量较小
(4)虽然也有恢复机制,但并不是所有故障都能恢复,可靠性较低
(5)内存数据库 (6)内存数据库 (7)关系数库 (8)内存数据库(9)内存数据库
2. 2.数据持久层是一组软件服务,将应用程序与该程序所使用的数据源分离,为整个项目提供一个
统一、安全、并发的数据持久机制。
好处:
1、程序代码重用性强,即使更换数据库,只需要更改配置文件,不必重写程序代码。
2、业务逻辑代码可读性强,在代码中不会有大量的SQL语言,提高程序的可读性。
3、持久化技术可以自动优化,以减少对数据库的访问量,提高程序运行效率。
4、简化开发工作,让开发人员更关注于业务逻辑的开发。
【问题2】
1、项目组应选Hibernate框架
2、选择该技术的原因是:
(1)从移植的角度来看使用Hibernate更容易移植到其它数据库平台。
Hibernate与具体数据库的关联只需在XML文件中配置即可,所有的HQL语句与具体使用的数据库无关,移植性很好。MyBatis项目中所有的SQL语句都是依赖所用的数据库的,所以不同数据库类型的支持不好。
(2)使用Hibernate能降低或者消除SQL语句开发工作量,Hibernate 提供了方法完成持久层操作,
程序员不需要对SQL 的熟练掌握,便可完成任务。
(3)Hibernate提供了对象状态管理的功能,使开发者不再需要理会底层数据库系统的细节,而
MyBatis在这一块没有文档说明,用户需要对对象自己进行详细的管理。
3. 3.数据流的组成和作用
数据流:数据流是数据在系统内传播的路径,因此由一组成分固定的数据组成。
外部实体:代表系统之外的实体,可以是人、物或其他软件系统。
(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.加密解密过程
应采用流加密方式。因为需求中提及“单个敏感数据文件可能会达到数百兆的规模”,文件数据量较大,使用流加密方式可以获得更高的加解密效率。
数据加密与解密过程如下: