购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 分布式架构设计理念和目标

1.2.1 设计理念

分布式架构的核心理念按照一定维度(功能、业务、领域等)对系统进行拆分,通过合理的拆分结构,实现各业务模块解耦,同时通过系统级容错设计,在廉价硬件基础设施上构建起高可用、可扩展的开放技术体系。

1.2.2 设计目标

设计目标可以明确方向,通过设计驱动和方向的把控,朝着既定方向前行并最终实现目标。分布式架构中较为完整的架构体系设计包括以下几个方面。

1. 系统拆分

系统拆分思路如下所示。

以购物平台为例,按照业务功能可以简单拆分为如下几个模块。

(1)用户模块

(2)商品模块

(3)订单模块

(4)库存模块

2. 业务模块解耦

在拆分之前,模块和模块之间、系统和系统之间可能有非常强的依赖,所以我们在拆分过程中需要思考,哪些模块需要减少依赖。依赖越少,独立性越强。

例如,用户强依赖商品,为了减少用户依赖而把商品从用户中剔除,显然并不合理。所以可以减少用户依赖商品细粒度。

用户模块和商品模块独立出来后,两者之间如何交互调用呢?我们可以把两者之间通用性较强的业务独立到共通的服务中,通过调用共通服务减少耦合性。

这样做的优点是:

1)减少模块和模块之间的大量耦合交互;

2)后期修改维护成本少;

3)简单透明。

通过以上优化,如两者之间还存在少量的依赖,考虑是否进一步拆分。如需拆分,可以通过一定维度(规划计划、系统后续完整性、后续维护工作量等)拆分,也可以通过接口的方式解耦,例如用户、商品之间提供一个共用接口,用户调用接口,商品实现接口。这种方式比较烦琐。

3. 系统容错

容错是为了避免系统架构和业务层面发生故障而引起其所在系统的不稳定。优秀的容错设计能让系统的反馈对故障不敏感,甚至是自适应的。容错设计包括以下两个层面。

(1)架构设计层面

(2)业务功能层面

4. 高可用

通过设计和监控可以提高系统正常提供服务的可靠性,那么,如何才能保障系统的高可用?单点系统面临严重高可用问题,所以在设计过程中要尽量避免系统的单点出现,保证系统处于多机状态,俗称冗余。冗余指重复配置系统某些部件,当系统发生故障不可用时,冗余配置的部件介入并承担故障部件的工作,减少系统的故障时间。分布式架构中,互联网调用过程如下。

1)客户端层:首页、App。

2)代理服务层、请求加速层:减少请求访问次数,达到加速。

3)应用服务层:系统业务服务。

4)数据缓存层:业务数据内存存储。

5)数据库层:业务数据数据库存储。

注意

系统的高可用:可以对不同访问层进行特定优化,如常用集群化和自动故障转移。 TB+Ef7FFkkNTGwPuNG2so3WONZiv5v7Wn8FYq3TgTyp7Rwe6noHcazEU5NosFTGC

点击中间区域
呼出菜单
上一章
目录
下一章
×