[系统架构设计师]案例(二十四)
[系统架构设计师]案例题(二十四)
一.系统风格
1.黑板风格
优点:可用于非确定性问题求解,启发式解决过程,可维护性,可重用
缺点:不能保证期望结果,效率低下,回退,不支持并行,共享空间的访问需要同步
2.管道-过滤器风格
优点:简单性,支持复用,系统具有可扩展性,系统并发性(每个过滤器可以独立运行,不同子任务可以并行执行,提高效率)
缺点:不适合用来设计交互式应用系统
二.SOA与微服务
1)SOA设计思路是把一些组件和服务,通过服务总线组装,形成更大的应用系统(从小到大);而微服务的设计思路是把应用拆分成独立自治的小的服务(从大到小)
2)SOA很大程度上依赖基于XML的消息格式和基于SOAP的通信协议,微服务架构大量的shuj依赖于REST和JSON
3)SOA架构中需要存在ESB总线,负责服务之间的通信转发和接口适配。在微服务架构中,强调更轻量级,更迅速,去中心化的技术
4)SOA设计架构强调分层,通常会分为展现层,业务层,总线层,数据层。微服务架构中的服务更松散,更容易扩展
5)SOA中的服务不强调业务领域的自治性,微服务架构强基于领域的服务自治性
三.微服务架构的含义和关键原则
微服务是一种软件开发技术,是面向服务的体系结构(SOA)架构风格的一种变体。微服务将应用程序构造为一组松散耦合的服务,微服务中单各个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。
1.微服务风格的关键原则如下
1)每一种URL代表1种资源
2)客户端使用HTTP Verb表示操作方式的动词对服务端资源进行操作
- 通过操作资源的表现形式来操作资源
4)资源的表现形式是XML或者HTML
5)客户端与服务端之间的交互是无状态的,客户端每个请求必须包含理解请求所必需的所有信息
四.MySql主从复制
1.优点
1)避免数据库单点故障:主服务器实时,异步复制数据到从服务器,当主数据库宕机时,可在从数据库中选择一个升级为主服务器,从而防止数据库单点故障
2)提高查询效率:根据数据库访问特点,可以使用主数据库进行数据库的插入,删除及更新等操作,而从数据库则专门用来进行数据查询操作,从而将查询操作分担到不同的从服务器以提高数据库访问效率
2.主从复制过程
当在从库上启动复制时,首先创建I/O线程连接主库,主库随后创建Binlog Dump线程读取数据库事件并发送给I/O线程,I/O线程获取到事件数据后更新到从库的中继日志Relay Log中去,之后从库上的SQL线程读取中继日志Relay Log中更新的数据库事件并应用
3.主从复制分类:同步,异步,半同步复制
同步复制:主数据库要等待所有备数据库均操作成功才可以响应用户,影响用户体验。这种方式保证了系统的一致性,但牺牲了数据的可用性。
异步复制:当用户请求更新数据时,主数据库处理完数据后可直接给用户响应,而不必等待备数据库完成同步,备数据库会异步进行数据的同步,用户的更新操作不会因为备数据库未完成数据同步而导致阻塞。这种方式保证了系统的可用性,但牺牲了数据的一致性。
半同步复制:用户发出写请求后,主数据库会执行写操作,并给备数据库发送同步请求,但主数据库不用等待所有备数据库回复数据数据同步成功便可响应用户,也就是说主数据库可以等待一部分备用数据库同步完成后响应用户写操作执行成功
五.MVVM模式和MVC模式主要区别
六.C/S和B/S架构风格
1.C/S架构风格优点
1)客户机应用程序与服务器程序分离,二者的开发既可以分开进行,也可同时进行;
2)技术成熟,允许网络分布操作,交互性强,具有安全的交互模式;
3)网络压力小,响应速度快,有利于处理大量数据;
4)模型思想简单,易于人们理解和接受等;
2.C/S架构风格的缺点
1)客户机与服务器的通信依赖于网络,服务器的负荷过重;
2)无法实现快速部署和安装,维护工作量大,升级困难;
3)开发成本较高,客户端程序设计复杂,灵活性差;
4)用户界面风格不一,软件移植和数据集成困难;
5)数据库的安全性因客户机程序直接访问而降低等;
3.B/S架构风格的优点
1)易于部署,维护和升级;
2)具有良好的开放性和扩充性,可以应用在广域网上,方便了信息的全球传输,查询和发布;
3)可跨平台操作,无须开发客户端软件;
4)通过JDBC等数据库连接接口,提高了动态交互性,服务器的通用性与可移植性等
4.B/S架构风格的缺点
1)数据的动态交互性不强,不利于在线事务处理应用;
2)数据查询等响应速度较慢;
3)系统的安全性较难以控制等
5.避免单点故障
1)采用双链路连接Internet的备份方式
2)对数据中心的数据库服务器采用双机冗余热备方式(或多集群Cluster和数据库并行处理技术等)
3)对存储设备进行RAID10级别(或全冗余的SAN结构,或全冗余的存储结构)等
七.边缘计算
1.边缘计算特点
- 连接性:所连接物理对象的多样性及应用场景的多样性,需要边缘计算具备丰富的连接功能,如各种网络接口,网络协议等
2)数据第一入口:边缘计算拥有大量,实时,完整的数据,可基于数据全生命周期进行管理与价值创造,将更好地支撑预测性维护,资产效率与管理等创新应用
3)约束性:边缘计算产品需适配工业现场相对恶劣地工作条件与运行环境,在工业互联场景下,对 边缘计算设备的功耗,成本,空间也有较高的需求。边缘计算产品需要考虑通过软硬件集成与优化,以适配各种条件约束,支撑行业数字化多样性场景
4)分布性:边缘计算实际部署天然具备分布式特征。这要求边缘计算支持分布式计算与存储,实现分布式资源的动态调度与统一管理,支撑分布式智能,具备分布式安全等能力
2.边缘计算与云计算的区别与联系
1.区别
边缘计算与云计算各有所长。云计算擅长全局性,非实时,长周期的大数据处理与分析从,能够在长周期维护,业务决策支撑等领域发挥优势;边缘计算更适用局部性,实时,短周期数据的处理与分析,能更好地支撑本地业务的实时智能化决策与执行
2.联系
边缘计算与云计算之间不是替代关系,而是互补协同关系,边云协同将放大边缘计算与云计算的应用价值,边缘计算既靠近执行单元,也是云端所需高价值数据的采集和初步处理单元,可以更好地支撑云端应用;反之,云计算通过大数据分析优化输出地业务规则或模型可以下发到边缘测,边缘计算基于新地业务规或模型运行
3.边缘计算与云计算协同能力
1)资源协同:边缘节点提供计算,存储,网络,虚拟化等基础设施资源,具有本地资源调度管理能力,同时可与云端协同,接受并执行云端资源调度管理策略,包括边缘节点的设备管理,资源管理以及网络连接管理
2)数据协同:边缘节点主要负责现场/终端的数据采集,按照规则或数据模型对数据进行初步处理与分析,并将处理结果及相关数据上报给云端;云端提供海量数据的存储,分析与价值挖掘。边缘与云的协同,支持数据在边缘与云之间可控地有序流动,形成完整的数据流转路径,高效低成本地对数据进行生命周期管理与价值挖掘
3)智能协同:边缘节点执行推理,实现分布式智能;云端开展模型训练,并将模型下发边缘节点
4)应用管理协同:边缘节点提供应用部署与运行环境,并对本节点多个应用的生命周期进行管理调度;云端主要提供应用开发,测试环境,以及应用的生命周期管理能力
5)业务管理协同:边缘节点提供模块化,微服务化的应用/数字孪生/网络等应用实例;云端主要提供按照客户需求实现应用/数字孪生/网络等的业务编排能力
6)服务协同:边缘节点按照云端策略实现部分ECSaaS服务,通过ECSaaS与云端SaaS的协同实现面向客户的按需SaaS服务;云端主要提供SaaS服务在云端和边缘节点的服务分布式策略,以及云端承担的SaaS服务能力
八.TLS结构框架
1.特点
1)应用软件仅与操作系统服务相关,不直接操作硬件。
2)操作系统通过模块支持原软件访问硬件,可与具体硬件无关。
3)模块支持层将硬件抽象成标准操作。
4)通过三层栈的划分可实现硬件的快速更改与升级,应用软件的升级不会引起硬件的变更。
2.各层内涵
1)应用层主要完成具体工作,由多个功能任务组成,各功能任务间的隔离由操
作系统层实现。
2)操作系统层实现应用软件与硬件的隔离,为应用软件提供更加丰富的计算机资源服务。 操作系统为应用软件提供标准的 API 接口(如 POSIX),确保了应用软件的可升级性
3)模块支持层为操作系统管理硬件资源提供统一的管理方法,用一种抽象的标准接口实现软件与硬件的无关性,达到硬件的升级要求,便于硬件的外场快速更换。
3.Linux操作系统
1)Linux 操作系统是一种安全性较强的操作系统。内核工作在系统态,应用软件工作在用户态,可以有效防止应用软件对操作系统的破坏。
2)Linux 操作系统调度的最小单位是线程,线程归属于进程,进程具有自己独立的资源。 进程通过存储器管理部件(MMU)实现多功能应用间隔离。
3)嵌入式 Linux 操作系统支持硬件抽象,可有效实现 TLS 结构,并将硬件抽象与操作系统分离,可方便地实现硬件的外场快速更换
九.嵌入式故障类别
1.故障类别
1)硬件故障:如 CPU、存储器和定时器等;
2)应用软件故障:如数值越界、异常和超时等;
3)操作系统故障:如越权访问、死锁和资源枯竭等
2.滤波算法
1)门限算法
2)递减算法
3)递增算法
4)周期滤波算法
3.容错算法
1)N+1备份
2)冷备
3)温备
4)热备
九.数据库
1.针对每条 SQL 语句都建立索引的建议是否合适?
不适合
1)如果建立索引不当,数据库管理系统将不利用已经建立的索引,而采取全表扫描
2)当更新操作成为系统瓶颈,因为每次更新操作会重建表的索引,则需要考虑删除某些索引
3)应该针对不同应用情况选择适当的索引类型。例如,如果经常使用范围查询,则 B 树索引比散列索引更加高效
4)应该将有利于大多数数据查询和更新的索引设为聚类索引
5)需要对建立的索引进行实际的测试,因为索引的使用是由数据库管理系统(数据库优化器)决定的。
2.sql语句优化
1)建立物化视图或尽可能减少多表查询
2)以不相干子查询替代相干子查询
3)只检索需要的列
4)用带 IN 的条件子句等价替换带 OR 的子句
5)经常提交 COMMIT,以尽早释放锁
6)避免嵌套的游标(Cursor)和多重循环等
3.O/R映射
O/R 映射指的是对象/关系映射,是一种编程技术,将关系数据库中的关系型数据与面向对象编程语言中类型系统定义的数据进行格式转换。采用对象/关系映射主要有 3 点好处:
(1)可以将业务逻辑与数据逻辑分离。
(2)可以使得开发人员采用面向对象的方式访问底层关系型数据库。
(3)能够做到上层应用与底层的具体数据库无关,两者解耦合。
十.Web性能
1.影响Web应用系统性能因素
1)数据库的连接与销毁。可以采用数据池的方式缓存数据库连接,实现数据库连接复用,提高系统的数据访问呢效率。
2)构件或中间件的加载与卸载。可以采用分布式对象池的方式缓存创建开销大的对象,实现对象复用,用以提高效率。
3)线程的创建与销毁。可以采用线程池的方式缓存已经创建的线程,提高系统的反应速度。