上节我们讲了架构的演变和模式,那到底什么是架构呢?架构的核心又是什么呢?带着这写疑问,我们开启今天的旅途。
什么是架构?
比较通俗的概括就是:最高层次的规划,难以改变的决定;这些规划和决定,影响着事物未来发展的方向和蓝图。定位到软件架构层次,引用维基百科中的定义是这样的:有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。那么一般来说,我们的系统除了要关注当前系统需求之外,还需要关注以下几个方面:性能、可用性、伸缩性、扩展性和安全性,架构过程中通过平衡这5个方面之间的关系来实现需求和架构目标,也可以通过这个5个方面来衡量一个软件架构设计的合理化。
性能
性能是网站的一个重要指标,谁也无法忍受一个响应特别慢的网站,性能问题必然是一个网站升级优化的触发器,任何的软件在设计的时候就必须要考虑到其性能的影响,因为性能显得至关重要,所以在性能优化方面也做了很多工作,优化的手段也有很多,从用户浏览器的一个请求开始,到数据库。这中间每个环节都能进行性能的优化
网站性能架构的主要手段:
-
浏览器端:通过浏览器缓存、页面压缩、合理化布局、减少cookie传输等;
-
CDN和反向代理;
-
应用服务器端:通过本地缓存和远程缓存缓存热点数据;
-
异步操作:通过消息队列实现请求的异步操作,减少响应时间;
-
集群:高并发情况下,多台服务器组成一个集群环境,提供并发处理能力;
-
代码层面:通过多线程、改善内存管理,JVM调优等手段;
-
数据库端:主要包括索引、缓存、SQL优化等;
衡量网站性能的指标包括:响应时间、TPS、系统性能计数器等。
因为我们预先无法预知网站将