(1 )应用分层设计
应用分层设计很有必要。例如最起码要把对数据库的访问统-抽象出来形成数据层,而不是直接在代码里写SQL-这会使 重构应用和水平拆分数据库非常困难。我们通常从垂直方向划分应用,分成服务层、业务逻辑层和数据层,每一层尽量做到解耦:上层依赖下层, 而下层不要反向依赖上层。
应用分层最核心的目的是每个层都会封装一些信息、完成一些特定的功能需求,层与层之间通过接口交互,而且交互的数据是清晰和固定的,做到隔离和交互。可以从以下两个方向判断分层是否合理。
第一,如果我要增加-些新需求或者修改某些需求时,是否能清楚地知道要到哪个层去完成,换句话说,这些分层的职责是否清晰。
第二,如果每个层对我的接口不变,那么每个层内部的修改是否会导致其他层也发生修改,即每个层是否做到了收敛。
分层设计中最怕的就是在接口中设计一些超级数据结构,如传递个对象, 然后把这个对象一直传递下去,而且每个层都可能修改这个对象。这种做法导致两个问题:-是一旦该对象更改,所有层都要随之更改;二是无法知道该对象的数据在哪个层被修改,在排查问题时会比较复杂。因此,在设计层接口时要尽量使用原生数据类型如String、Integer 和Long等。
(2)微服务化
微服务化,是从水平划分的角度尽量把服务分得更细,每个业务只负责一个功能单元,这样可以把这些微服务组合成更大的功能模块。也就是有目的地拆小应用,形成单一职责从而提升系统可维护性、扩展性和开发效率。
基于Spring Boot构建的一个典型的微服务深圳网站建设架构,它按照不同功能将大的会员服务和商品服务拆成更小原子的服务,将重要稳定的服务独立出来,以免经常更新的服务发布影响这些重要稳定的服务。
本文地址://qlpinke.com//article/4457.html