三:大型网站的核心架构要素

须要关注性能、可用性、安全性、伸缩性,可扩展性五个要素css

性能:算法

    浏览器端能够浏览器缓存,启用gzip,可是这样会增长CPU的压力sql

    合理布局页面,css放在前面,js放在后面,由于页面是从上往下渲染数据库

    CDN,将静态资源分发网络机房,网络机房前作反向代理存放静态资源浏览器

    应用服务端,采用缓存,nosql数据库,分布式缓存等存放热点数据,减小应用端和数据库压力缓存

    采用消息队列,安全

    集群,使用负载均衡服务器

    代码层级采用多线程操做网络

    数据库方面优化服务端,使用缓存,分库分表,或者直接采用nosql数据库session

    指标有tps,并发数,响应时间等

可用性:

    采用集群,单台 宕机不影响集群内部工做,数据库作复制

伸缩性:

    动态加入server,对集群内部无影响

    若是应用服务是无状态的那么基本没啥影响,若是有状态的就要考虑session的问题,

    缓存服务器会影响路由,须要优化路由算法

    数据库若是采用了分库分表,也会影响,

    nosql基本都有很好的扩展性

扩展性:

    更快的实现新需求,可是新需求对现有系统是透明的,基本无感知,目前可伸缩框架通常是两中,一种是事件驱动架构,另外一种是分布式服务

    事件驱动架构:一般是指消息队列,通常均可以动态加入生产者消费者

    分布式服务:将业务和复用服务分开,经过分布式框架服务进行调用,基本无影响,如今国内比较好的就是阿里的Dubbo,Sina的Motan,和当当的Dubbox,不过dubbox实在dubbo的基础上开发的,

安全性

相关文章
相关标签/搜索