当前位置:   article > 正文

【系统架构师】-案例篇(十五)SOA、微服务与数据库_soa和微服务

soa和微服务

1、可复用构件应具备哪些属性

可用性:构件必须易于理解和使用。

质量:构件及其变形必须能正确工作。

适应性:构件应该易于通过参数化等方式在不同语境中进行配置。

可移植性:构件应能在不同的硬件运行平台和软件环境中工作。

可变性(Variability):构件应能针对不同的应用系统,只需对其可变部分进行适当的调节等

2、王工:客户端——web服务器——数据库服务器;

李工:客户端——web服务器——多应用服务器-数据库服务器

3、O/RM的含义及优点

O/R映射指的是对象/关系映射,是一种编程技术,将关系数据库中的关系型数据与面向对象编程语言中类型系统定义的 数据进行格式转换。

三点好处:

(1)可以将业务逻辑与数据逻辑分离。

(2)可以使得开发人员采用面向对象的方式访问底层关系型数据库。

(3)能够做到上层应用与底层的具体数据库无关,两者解耦合。

4、影响Web应用系统性能的三个主要因素:

(1)数据库的连接与销毁。可以采用数据池的方式缓存数据库连接,实现数据库连接复用,提高系统的数据访问效率。

(2)构件或中间件的加载与卸载。可以采用分布式对象池的方式缓存创建开销大的对象,实现对象复用,用以提高效率。

(3)线程的创建与销毁。可以采用线程池的方式缓存己经创建的线程,提高系统的反应速度。

提高数据访问性能

5、传统分层架构与SOA架构区别

6、基于SOA的企业集成中的“数据整合——信息服务”

(1)联邦服务(Federation,Service):提供将各种类型的数据聚合的能力,它既支持关系型数据,也支持XML数据、文本数据和内容数据等非关系型数据。同时,所有的数据仍然按照自己本身的方式管理。

(2)复制服务(Replication,Service):提供远程数据的本地访问能力,它通过自动的实时复制和数据转换,在本地维护一个数据源的副本。本地数据和数据源在技术实现上可以是独立的。

(3)转换服务(Transformation,Service):用于数据源格式到目标格式的转换,可以是批量的或者是基于记录的。

(4)搜索服务(Search,Service):提供对企业数据的查询和检索服务,既支持数据库等结构化数据,也支持如PDF等非结构化数据。, 

7、SOA架构设计的注意事项

当基于SOA来构建一个企业级的系统架构时,一定要注意对原有系统架构中的集成需求进行细致的分析和整理。而关于系统中最重要的元素,也就是SOA系统中服务的构建有两点需要特别注意的地方:

①是对于服务粒度的控制;

②是对于无状态服务的设计。

8、针对每条SQL语句都建立索引的不合理原因:

①如果建立索引不当,数据库管理系统将不利用已经建立的索引,而采取全表扫描。

②当更新操作成为系统瓶颈时,因为每次更新操作会重建表的索引,则需要考虑删除某些索引。

③应该针对不同应用情况选择适当的索引类型。例如,如果经常使用范围查询,则B树索引比散列索引更加高效。

④应该将有利于大多数据查询和更新的索引设为聚类索引。

⑤需要对建立的索引进行实际的测试,因为索引的使用是由数据库管理系统(数据库优化器)决定的。

9、SQL优化的基本策略:

①建立物化视图或尽可能减少多表查询。

②以不相干子查询替代相干子查询。

③只检索需要的列。

④用带IN的条件子句等价替换OR子句。

⑤经常提交COMMIT,以尽早释放锁。

⑥避免嵌套的游标(Cursor)和多重循环等

10、微服务的优缺点

微服务优点:

(1)每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。

(2)微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。

(3)微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。

(4)微服务能使用不同的语言开发。

(5)去中心化。每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库。

 微服务缺点:

(1)很难在不采用分布式事务的情况下跨服务实现功能

(2)测试工作更加困难

(3)跨服务实现要求功能要求团队之间的紧密协作

(4)部署复杂

微服务架构的涵义和关键原则

微服务是一种软件开发技术,是面向服务的体系结构(SOA)架构风格的一种变体。微服务将应用程序构造为一组松散耦合的服务,微服务中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。

微服务风格的关键原则:

1. 每一个 URI 代表 1 种资源

2. 客户端使用 HTTP Web 表示操作方式的动词对服务端资源进行操作

3. 通过操作资源的表现形式来操作资源

4. 资源的表现形式是 XML 或者 HTML

5. 客户端与服务端之间的交互是无状态的,客户端每个请求必须包含理解请求所必需的所有信息

11、网关的主要作用

1、提供统一入口

2、可以进行权限身份认证等安全管理

3、可以根据流量进行限流

4、数据缓存

5、性能监控等

6、异常重试

7、服务降级

12、ATAM架构评估方法的主要过程:

描述和介绍阶段:描述ATAM方法,描述业务动机,描述架构

调查和分析阶段:确定架构方法,生成质量属性效用树,分析架构方法

测试阶段:讨论场景和对场景分级,分析架构方法

最终阶段:描述评估结果

13、数据结构优化

设备信息(设备标识、登记标识、所属用户、设备状态)

设备心跳(设备标识、最后一次心跳时间)

设备异常(设备标识、异常类型、异常发现时间、是否推送)

问题1. 设备与用户间存在多对多的关系,如单个设备既属于社区安防用户,又属于消防站监管。

问题2. 设备状态属于设备动态属性,不应与静态属性混合存储,会增加静态信息表的IO。

问题3. 设备心跳不应只存储最后一次,无法获取全部设备状态。

问题4. 设备异常的推送是否仅单一一个用户一次,如果存在多条推送,则存在一对多的关系。

14、使用MySQL作为数据库,而软件研发团队的架构师却提出要使用由MySQL、HBase和Redis组成的多种多组数据库。请给出适当建议。

技术总监的建议中,MySQL属于关系型数据库,实际应用中一般用来作为操作数据存储。研发架构师提出的HBase和Redis属于NoSQL,实际应用中一般用来做大数据量和高即时性数据存储。该案例属于物联网应用,建议增加NoSQL数据库提高数据存储的容量和即时性。

但是HBase属于列族数据库,不便于关联数据的查询,既降低查询速度,又增加IO操作,建议采用MongoDB替换掉HBase。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/956650
推荐阅读
相关标签
  

闽ICP备14008679号