软件架构设计【三】-系统架构中的数据分布设计

时间:2024-05-31 11:19:30

在大型系统中,数据分布设计非常重要,整理数据分布设计的6中常见策略,仅供参考:

独立Schema:当一个大系统由相关的多个小系统组成,且不同小系统具有互不相同的数据库Schema定义。独立模式可管理性高,通信开销小。

软件架构设计【三】-系统架构中的数据分布设计

集中:一个大系统必须支持来自不同地方的访问,或者该系统由多个不同的小系统组成,而数据进行集中化,统一格式存储。可管理性、数据一致性高。

软件架构设计【三】-系统架构中的数据分布设计

分区:分为水平分析与垂直分区,当系统为“地域分布广泛的用户”提供“相同服务”时,常常使用水平分区策略。垂直分区为字段分隔,一般较少使用。采用分区方式,可伸缩性好。

软件架构设计【三】-系统架构中的数据分布设计

复制:在整个分布式系统中,保存多个副本、并且以某种机制保持多个数据副本之间的数据一致性。复制方式可有效提升数据可靠性。

软件架构设计【三】-系统架构中的数据分布设计

子集:“子集”是“复制”的特殊方式,就是某节点因功能或非功能考虑而保持全体数据的一个相对固定的子集。

软件架构设计【三】-系统架构中的数据分布设计

重组:不同数据节点因要支持的功能不同,而以不同的schema保持数据---但本质上数据时同源的。重组以“重新组织”的格式进行传递和保持。

软件架构设计【三】-系统架构中的数据分布设计

6中策略总结可以使用如下图表示:

软件架构设计【三】-系统架构中的数据分布设计

在应用过程中,应当灵活使用各种策略,策略应用的一般化原则如下所示:

软件架构设计【三】-系统架构中的数据分布设计

总结:在应用过程中,根据实际应用进行分析,选择合适的数据分布策略,也可以组合使用,合适的数据分布策略将使系统的稳定性及功能满足新大大提高,可以使用如下过程确定数据分布策略:

在表格中列出6种不同的数据分布策略,如下表所示:

名称 对吗 好吗 总分
独立 是/否 0~100分
...

根据系统应用特点,通过以上分析,去除不适用的策略,根据总分确定所采用的数据分布策略,在有些地方也可以使用组合策略。