系统架构设计师
范规范技术:规范化设计后,数据库设计者希望牺牲部分规范化来提高性能,这种从规范化设计回退的方法称为反规范化技术。
好处:降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,提高查询效率。
问题:重复存储、浪费磁盘;数据完整性问题,为了一致性,增加了数据维护的复杂性,降低修改速度。
数据流 | 系统流程图 |
---|---|
处理过程可并行 | 某时间点只能处理一个过程 |
展现系统的数据流 | 展现系统的控制流 |
展现全局的处理过程,遵循不同的计时标准 | 遵循一致的计时标准 |
|比较因素|管道过滤器|数据仓库|
|----|----|
|交互方式|顺序结构或有限的循环结构 |星型 |
|数据结构| 数据流|文件或模型 |
|控制结构|数据流驱动 | 业务功能驱动|
|扩展方法| 接口适配|模型适配 |
|数据处理方式|数据驱动,处理流程先确定,交互性差|数据存在中心仓库,处理流程独立,支持交互式处理|
|可扩展性|处理流程和数据密切关联,调整流程需重启|数据与处理解耦,可动态添加|
|性能|劣:数据格式需转换;优:过滤器并发调用|劣:数据与流程分离,需加载数据;优:组件无关联,可并发|
- | RDB | AOF |
---|---|---|
磁盘更新频率 | - | 更高 |
数据安全 | - | 更安全 |
数据一致性 | - | 更好 |
重启性能 | 更快 | - |
数据文件大小 | 更大 | - |
分布式方案:主从, 哨兵, 集群(cluster)
切片:
淘汰策略:
- | 在线访问 | ORM |
---|---|---|
优点 | 性能好;可处理复杂查询语句 | 降低学习和开发成本;无需编些sql进行db操作;减少代码量,降低由sql质量差带来的影响 |
缺点 | 需懂sql;修改维护较困难 | 难以处理复杂语句;性能较直接sql差 |
页面可以根据用户的行为和不同的设备环境,做出相应的响应来调页面的布局,以提供给用户可感知的、流畅的阅读和操作体应。
实现方式:流式布局;弹性布局加媒体查询。
恢复块方法:
恢复块方法 | N版本程序设计 | |
---|---|---|
硬件运行环境 | 单机 | 多机 |
错误检测方法 | 验证测试程序 | 表决 |
恢复策略 | 向后恢复 | 向前恢复 |
实时性 | 差 | 好 |
加工:需要输入流 和输出流 (缺少输出 则属于黑洞; 缺少输入,则属于奇迹)
从数据存储到外部实体,需要加工加工
数据存储一般需要输出的数据流
策略:
工厂方法、抽象工厂、原型、单例、构造器
适配器、桥接、组合、装饰、外观、享元、代理
责任链、命令、解释器、迭代、中介、备忘录、外观者、状态、策略、模板、访问者
- | 关系型 | NoSql |
---|---|---|
读写 | 高并发性,磁盘IO无法承受,特别是多表连接 | 支持高并发数据访问,性能较高 |
格式扩展 | 采用元组组织数据,难以扩展数据格式 | 存储结构松散,灵活支持多种类型数据格式 |
扩容 | 中央数据存储,受限前期设计的上线,难以横向扩展 | 支持海量数据,易于横向扩展 |
可用性 | 中仓数据存储,易称为瓶颈,单点故障易导致系统崩溃,高负载导致宕机 | 基于分布式存储,不存在单点故障和瓶颈,高可用 |
Nosql可能存在的问题:
表现层转状态移(REST)是面向资源架构的核心思想,从资源的角度来定义整个网络系统结构,分布在各处的资源由统一资源标识符(URI)确定,客户端应用程序通过URI获取资源的表现,并通过获得资源表象使得其状态发生改变。REST中将资源、资源的表现和获取资源的动作三者进行分离。
数据获取方式:只需明确数据的位置与表示,通过特定的网络协议直接使用标志定位并获取数据;
数据交互方式: 以数据资源为核心,在对数据资源进行标识的基础上,通过标识符直接对数据资源进行访问与交互,实现简单且效率高。
上下文无关性:客户端通过URI请求对应的数据资源,服务端不需要区分。
- | 对称加密 | 公钥加密 |
---|---|---|
机密性 | 发送者利用对称秘钥加密 接受者只能以相同秘钥才能解密 |
发送者公钥加密 接收者私钥解密 |
完整性 | 生成消息摘要,并对摘要加密,附上数据一起发送 接收者解密后生成摘要然后对比 |
私钥对摘要加密 接收者对公钥解密后对比摘要 |