1、架构目标
1)高可用性:自动化运维,整体可用性达到4个9,全年不可用时间累积不超过50分钟,单个系统可用性达到5个9,全年不可用性累计不超过5分钟。
2)高扩展性:系统架构简单清晰,系统间低耦合,扩展便捷,业务功能增删改便捷。
3)低成本:增加服务的可重用性,提高开放效率,降低软硬件成本,减少人力成本,使用成熟的开源技术。
2、质量要求
1)设计质量:概念完整性,可扩展性,可重用性。
2)系统质量:可支持性,可测试性。
3)运行质量:可用性,可管理性,性能,可靠性,互操作性,可扩展性,安全性。
4)用户质量 :易用性。
3、业务架构设计原则
1)业务平台化:业务平台相互独立,基础业务下沉、服务化。
2)核心和非核心业务隔离:核心业务精简,非核心业务多样化。
3)隔离各种类型的业务:按业务类型隔离业务,交易业务要高可用,抢购要高并发等。
4)区分主、辅流程:保证主流程的完整顺利执行,辅流程异步处理。
4、应用架构设计原则
1)稳定性原则:一切以稳定为中心,架构简单清晰,不过度设计。
2)解偶拆分:稳定部分与非稳定部分分离,主辅流程分离,核心业务与非核心业务分离,应用与数据分离,设计与实现细节分离。
3)抽象化:应用抽象化,应该只依赖服务,不依赖具体实现细节、位置;数据抽象化,应用只依赖逻辑数据库的数据,不需要关心物理机的位置和分片。
4)松耦合:不同业务之间尽量异步解耦,核心非核心业务之间尽量解偶,必须同步调用时需要设置超时时间和队列长度。
5)容错设计:服务自治,集群容错,多机房容灾,异地多活。
5、架构分解原则
1)系统分解:业务分开,服务化,集群化。
2)数据库分解:读写分离,分库分表。
6、服务设计原则
1)无状态:没有业务状态,幂等操作。
2)可复用
3)松耦合
4)可治理
7、数据架构设计原则
1)读写分离
2)分库分表
3)索引设计