模式最重要的是能够重用css
为了解决高并发,海量数据,高可用提出了不少解决方案实现高可用,高性能,易扩展,可伸缩,安全的架构前端
分层:sql
程序上分层,并且也分层不是数据库
分割:缓存
纵向节分,按功能和服务包装秤高耦合低内聚的模块单元,这样一方面有利于开发维护,并且还有利于提供并发能力安全
好比网站能够分为购物,论坛,搜过,广告,再细致一点可能就是小家电,你们电,机票,酒店,日化等等服务器
分布式:网络
分层和分割一个重要做用就是分布式,经过远程调用,提升系统处理能力架构
可是随之带来了网络耗损,系统一致性,更大的宕机风险。并发
常见的解决方案有:
分布式应用服务:改善并发性,减小数据库链接资源,还能够更好的服用服务,有利于后续扩展
分布式静态资源:使用独立域名,减小服务器压力
分布式数据存储:如今数据量太大,主要是nosql
分布式细算:如今有hadoop,通常作数据分析,还有基于流计算的storm,主要用于实时计算
分布式锁:主要用于分布式环境下的协同操做,如今主要是zk提供的分布式锁功能比较好
分布式文件系统:通常用做云存储
集群:
对外提供一个接口,使用负载均衡,同时避免了单点故障
缓存:
将数据存放到离计算最近的位置加快速度
CDN:内容分发网络,放在网络运营商那里,存放一些静态资源,好比js,css
反向代理:网站前端,也能够存放一些静态资源
本地缓存:存储热点数据
分布式缓存:热点数据存储在分布式缓存中,减小应用和数据库的压力
异步:
下降了系统的耦合性,将业务拆分为多个阶段,单机状况下可使用共享数据的方式,分布式环境下可使用消费通讯,典型的消费者生产者模式
此外还有如下特征:
提供系统可用性,消费者故障了,消息就会存储起来,系统总体表现无恙,生产者恢复了从新消费
加快了相应速度
消除业务的高峰期,无论并发有多大,后台消费者仍是有序的处理