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