零售系统软件架构---设计之理论篇

来源:互联网 发布:mac appstore更新不了 编辑:程序博客网 时间:2024/06/07 03:45

一、设计原则

1.1、一致性原则

一致性应该是所有质量原则的根基
一致性的架构则会给软件系统带来和谐与平衡
1、业务模型名称一致性(相关干系人沟通的桥梁)
2、架构风格的一致性
3、解决方案的一致性
4、形式上的一致性

1.2、分离原则

1、分离构建的基础(可控因素,非可控因素,可控程度;主要业务尽量避免跨公共网络)
2、分离业务需要多系统协同合作,使系统更应职责清晰
3、便于业务系统测试验证

1.3、核心非功能属性展开原则

比如在某个系统建设中:
五属性:可扩展性、性能,伸缩性,可用性,成本
1、业务变化,新增功能对系统的影响最低
2、性能量化(指标关键业务2s以内等)
3、伸缩性扩容(多少台机器支撑多大的量等)
4、高可用(做到几个9?等)
5、降低整个开发、运营成本。(硬件投资成本,维护成本,新业务开发成本等)

二、设计理念

2.1、服务化

1、粗粒度的重用
2、为搭建公司信息系统平台打下坚实的基础

2.2、异步化

1、系统内并发处理,系统间并行处理
2、提高系统响应性
3、解耦系统并聚合服务

2.3、自动化

1、业务操作自动化(聚焦实际业务处理中)
2、开发自动化(比如 自动化生成工具)
3、部署自动化(大规模维护)
4、监控自动化(容量规划与流量监控)

三、互联网一些概念理论

3.1、分布式系统

视失败为常态;
重视横向伸缩性;
预测性能,追求低延迟,廉价的硬件和软件;
推崇重用,灵活设计,加入足够的监测点和调试功能来帮助日后的调试,优先虚拟计算等

3.2、CAP理论

3.3、ACID与Base模型

关系数据库的ACID模型拥有 高一致性 + 可用性 很难进行分区:
Durability. 一旦事务完成,就不能返回。
BASE模型反ACID模型,完全不同ACID模型,牺牲高一致性,获得可用性或可靠性:
Basically Available基本可用。支持分区失败(e.g.sharding碎片划分数据库)
Soft state软状态 状态可以有一段时间不同步,异步。
Eventually consistent最终一致,最终数据是一致的就可以了,而不是时时高一致。
BASE思想的主要实现有
1.按功能划分数据库
2.Sharding分片

3.4、SOA

是一种松散耦合的架构理念和模型,针对粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用。

四、互联网技术基础

1、基于x86服务器集群和开源软件搭建技术设施
       分布式架构+开源软件是其基本特征

2、基于场景的需求分析和应用开发

       a、所有系统采取服务化模式,系统之间进行必要的分拆和隔离,通过服务调用和消息通知的方式进行协同;
       b、BASE和ACID相结合;

       c、无单点设计、可监控、可测试、可回滚、可禁用、短事务与柔性事务、异步设计、无状态、业务分等级、业务可降级、多数据中心部署。

3、平台化建设理念

       而服务化又是平台化最显著的特征。

4、自动化部署与运维体系

       DevOps工程实践、Docker容器引擎

0 0