三层架构的优缺点

编程入门 行业动态 更新时间:2024-10-08 13:34:43

三层架构的<a href=https://www.elefans.com/category/jswz/34/1765774.html style=优缺点"/>

三层架构的优缺点

三层架构

三层架构一般包含:控制层,业务逻辑层,数据访问层。

从历史角度考虑优缺点

单一应用结构

优势

    - 结构简单- 性能高

劣势

    - 业务杂糅。代码杂糅的不同的业务,要求开发人员能理解所有的细节,维护费时间。

面临什么问题?

    - 当处理的业务越来越多时?- 代码变得庞杂,需要重构。- 当需要有共同的业务处理的任务时,需要抽取公共类。- 如不重构,会出现很多重复的代码段。改动一个地方,很多地方相同的代码都需要改动,既提升了产生bug的风险,又让修改时间变长,对开发人员细心程度高。- 当代码中需要添加日志,事务,权限控制,数据监控,会增加诸多重复的、相似的代码块- 当参与的人员越来越多时,不同的风格代码结构会造成理解上的困难。

改进

    - 提取公共类- 抽取公共的模型类- 抽取帮助类或者utils类- 大类变小类- 大的业务处理的类,根据业务聚焦的不同,划分成几个业务处理类- 使用组合和继承(设计模式)的方式,让结构具有可扩展性,可复用性- 使用责任链模式,策略模式,访问者模式等模式让的业务处理类得到有效的利用

垂直应用架构(三层架构)

优势

    - 层次清晰,每个层次都提供了接口定义- 很容易用新的实现替换原来的层次实现。例如对sql进行性能优化,并不会影响其他层的代码结构。有利于后期维护。- 有利于实现切面编程,减轻业务的复杂程度,加快编码效率。- 每个层次的定位明晰,业务处理的内容明确。依据层次,可以划分不同的分工。开发人员可以只关注整个结构的其中某一层。- 接口定义也提供了良好的可扩展性。例如数据库从mysql切换到oracle,只需要通过配置来切换。- 降低了代码之间,层与层的依赖关系- 复用性:利于各层代码逻辑的复用- 安全性:接口设计需要符合对扩展开发,对修改关闭的原则,增强了系统的安全性

缺点

    - 降低了系统的性能。使用中间层访问数据库,对数据进行转换等等都需要计算时间。- 新增业务处理时,需要在各个层增加功能。
- 面临的问题- 不同的层次对接口规范理解的层次不一样,对接口维护,调用,监控都会产生影响- 当用户访问量增大时,性能会遇到瓶颈。- 单点服务问题- 部署会造成服务中断- 服务挂了之后,需要人工及时的处理,给用户和公司带来损失

改进

    - 明确良好的接口规范,团队内部统一接口规范- 使用缓存减轻服务的性能压力- 转向分布式架构:将服务改造成无状态的分布式服务,通过集群来增强计算能力。

案例:Spring

    - 优点:为开发者实现了中间层次的共同的逻辑,让开发者更多的关注业务实现,而不是代码结构,提升开发效率。

分布式服务架构

优势

    - 通过集群(负载均衡,分布式调度服务,分布式应用,分布式存储),MQ,noSql,流处理等技术来提升计算、存储的性能

劣势

    - 系统结构变得复杂- 新增一项业务,可能涉及到不同的分布式应用,造成调试成本的增加- 部署一套服务包含很多过程

面临的问题

    - CAP只能同时满足其中两个- 业务拆分、数据拆分的问题- 集群的节点越多,意味着更高的成本- 集群治理问题凸显- 状态如何在多个服务器上共享- 不同的服务器处理性能不一,造成某些服务器压力大,某些服务器压力小- 越来越大的数据量吞没更多的存储

改进

    - 使用持续集成技术,一键部署- 使用领域驱动设计划分不同的业务领域,为业务拆分、数据拆分奠定基础- 优化代码性能,减少计算服务器的数量;通过压缩技术,减少存储服务器的数据。- 使用dubbo,spring cloud的技术增加分布式服务治理功能

更多推荐

三层架构的优缺点

本文发布于:2024-02-28 03:33:02,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768047.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:优缺点   架构

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!