分布式架构系统学习笔记(三)-系统架构设计模式

模式来自于建筑学,这样定义:数据库

“每个模式描述了一个在咱们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而没必要作重复工做”。设计模式

模式的关键在于模式的可重复性,问题与场景的可重复性带来解决方案的可重复使用。缓存


系统经常使用的架构设计模式:安全

一、分层服务器

分层是系统中最多见的一种架构模式。从上到下通常分为:应用层、服务层、数据层。网络

应用层:负责具体业务和视图展现(能够进一步划分为:视图层+业务逻辑层);数据结构

服务层:为应用层提供服务支持,如用户管理服务、购物车服务等(能够进一步划分为:数据接口层+逻辑处理层);架构

数据层:提供数据存储和访问服务,如数据、缓存、文件等;并发

分层好处:系统切分、便于分工开发和维护;负载均衡

分层原则:层与层之间保持独立性、保持接口不变、层内部迭代不影响其余层;

分层挑战:合理划分层次边界和接口、禁止跨层次调用、层次逆向调用;


二、分割

一个层内部,纵向对软件系统切分。将不一样业务分割。好比应用层:将购物、论坛、搜索、广告分割为不一样应用。


三、分布式

好处:分布式集群方式提供服务,可使用更多计算机完成一样功能、机器资源更多、能处理的并发和数据量越大。

劣势:一、分布式意味着网络访问,网络开销增长;二、机器越多,宕机几率越大(一台宕机可能引发整个服务不可用);三、分布式下,数据一致性保证难度加大;四、分布式致使系统依赖错综复杂。

经常使用的分布式方案:一、分布式应用和服务;二、分布式静态资源;三、分布式数据和存储;四、分布式计算;五、分布式配置;六、分布式锁;七、分布式文件系统。

四、集群

将独立部署的服务集群化(多台服务器部署相同应用组成一个集群),再引入负载均衡模块,作到集群服务负载均衡。

五、缓存

CDN、反向代理、本地缓存、分布式缓存。

使用缓存两个前提:一、数据访问热点不均匀,有相似82效应;二、数据具备必定时效性,不会很快过时。不然缓存数据会变成脏数据。

六、异步

异步架构师典型的生产者消费者模式。二者不存在直接调用关系,经过共享数据方式作到异步协做和通讯。另外,只要共享数据结构不变,彼此内部功能能够随意迭代升级、互不影响。

异步消息队列机制:一、提升系统可用性,消费者故脏,数据排队,生产者能够继续响应业务请求;二、加快网站响应速度、将数据写入队列后,能够直接返回;三、消除并发访问高峰。消息队列做为缓冲,不会让毛刺高峰请求直接冲击系统,而是放入消息队列,消费者慢慢消化和化解。

七、冗余

数据库冷热备份、灾备中心等。

八、自动化


九、安全