什么叫架构(这里指的是软件架构)?sql
有关软件总体结构与组件的抽象描述,用于指导大型软件系统各方面的设计。
数据库
下面就是软件架构的几大关注要素:
浏览器
1,系统功能需求缓存
固然是重点处理对象,有功能需求才会有项目,也才用架构;安全
2,性能
服务器
一个网站的性能,或者说是响应速度会严重影响用户体验。据最新研究代表,大多数用户指望的网站加载时间是3秒,若是时间长过3秒,网站就开始流失用户;固然,随着如今的网速每一年成指数级的增涨,3秒这个指望值可能再也不受用。多线程
衡量性能的重要指标:响应时间 ,TPS,系统性能计数器架构
其中能够优化的,异步
浏览器端:包括浏览器缓存,使用页面压缩,合理布局页面,减小Cookie传输,页面静态化,CDN,反向代理;nosql
应用服务器端:本地缓存,分布式缓存,集群,异步消息队列;
代码:多线程,JVM调优;
数据库端:index,cache,sql,nosql;
3,可用性
高可用设计的前提就是必然会出现服务器宕机,目标就是宕机后服务仍然可用。
主要手段:冗余
4,伸缩性
指标:是否能够用多台服务器构建集群,并向集群中添加新的服务器。
包括:应用服务器集群,缓存集群,数据库。
5,扩展性
指标:在网站增长新业务时,是否能够实现对如今产品透明无影响。不须要任何改动或者不多改动如今业务就能够上线新的业务。
主要手段是:事件驱动架构(使用消息队列),分布式服务(RPC)。
6,安全性