【题目一】
某公司拟开发一套在线软件开发系统,支持用户通过浏览器在线进行软件开发活动。该系统的重要功能,包括我的编辑,语法高亮提示,代码编频,系统调试,代码气库管理等,在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
a)根据用户的付费情况对用户进行分类,并根据类别提供相应的开发功能。b)在正常负载情况下,系统应该在0.2s 内对用户的界面操作请求进行响应。
c)系统应该具备完善的安全防护措措施,能够对黑客的攻击行为进行检测和防御。d)系统主站点断电后应在3s 内将请求重定向到备用站点。
e)系统支持中文昵称,但用户名必须以字母开头,长度不少于8个字符。f)系统宕机后,需要在15s内发现错误,并启用备用系统。
g)在正常负载情况下,用户的代码提交请求应在0.5s内完成。h)系统支持硬件设备灵活扩容,应保证在2人天内完成。
i)系统需要针对代码仓库的所有操作进行详细记录,便于后期查阅与审计。j)更改系统web 界面风格需要在4人天内完成。
k)系统本身需要提供远程调试接口,支持开发团队进行远程排错。
在对系统需求质量属性和架构特性进行分析的基础上,该公司的系统架构给了两种方案。
互联网公司因业务发展要建立网上平台为用户提供一个对网络文化产品进行评论(小说,电影等)交流的平台,该平台的部分功能如下:
(a)用户帖子的评论计数器
(b)支持粉丝列表功能©支持标签管理(d)支持共同好友功能(e)提供排名功能
(f用户的信息结构化存储
(g)提供好友信息的发布/订阅功能。
该系统在性能上需要考虑高性能,高并发,以支持大量的用户同时访问,经过考虑,在数据管理上,决定采用Redis+数据库的解决方案。
RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。
AOF持久化以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。
RDB可以理解为是一种全量数据更新机制,AOF可以理解为是一种增量的更新机制,AOF重写可以理解为是一种全量+增量的更新机制(第一次是全量,后面都是增量)
RDB适合服务器数据库数据量小,写命令频繁的场景一旦系统出现灾难性故障,我们可以非常容易的进行恢复。
AOF适合数据量大,写命令少的场景
AOF重写适合在AOF运行了很久的写命令之后执行。
AOF 文件的体积通常要大于 RDB 文件的体积。
AOF在运行效率上往往会慢于RDB。总之,每秒同步策略的效率是比较高的,同步禁用策略的效率和RDB一样高效。
开发基于Web的基业设备检测系统,以实现对多种工业数据的分类采集,运行状态检测以及相关信息的管理该系统应具备以下功能:
现场设备状态采集功能,根据数据类型对设备检测指标状态信号进行分类采集,设备采集数据传输功能:9-11月可靠的传输技术,实现将设备数据从制造现场传输到系统后台。
设备检测显示功能:对设备的运行状态工作以及报警状态进行检测并提供相应的图形化界面。
设备信息管理功能:支持设备运行历史状态,报警记录参数信息的查询同时,该系统还需满足以下非功能性需求:
(a)系统应支持大于100个工业设备的进行检测
(b)设备数据以制造现场传输到系统后台传输时间小于1S©系统应在7*24小时工作
(d)可抵御见XSS攻击
(e)系统在故障情况下,应在0.5小时内恢复(f)支持数据审计
面对系统需求,公司召开项目计论会议,制定系统设计方案最终决定使用三层拓补结构,即现场设备数据采集层、Web检测服务层和前端Web 显示层。