版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_32924343/article/details/83088248
大型网站的架构要素分为5个大类,有5个大类的一些标准。
1.性能
网站的性能优化手段有很多,主要分为下面几种:
1.1 浏览器端:
浏览器缓存,使用页面压缩,合理布局页面,减少Cookie传输手段,CDN;
1.2 应用服务器端:
服务器本地缓存和分布式缓存,加速请求处理过程,减轻数据库负载压力;异步操作通过消息队列处理任务;
1.3 集群:
组成集群共同对外提供服务;
1.4 代码层面:
多线程,改善内存管理等手段;
1.5 数据库服务端:
索引,缓存,SQL优化,NoSQL数据库通过优化数据模型,存储结构,伸缩性等方面提升性能;
1.6 其他指标
响应时间,TPS,系统性能计数器等手段;
2. 可用性
主要手段就是冗余,应用部署在多台服务器上同时提供访问,数据存储在多台服务器上互相备份。
3. 伸缩性
伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。
应用服务器集群:
只要服务器上没有数据保存,所以服务器都是对等的,通过合适的负载均衡设备就可以加入服务器;
缓存服务器集群:
新加入的服务器可能会导致缓存路由失效,进而导致集群中大部分缓存数据无法访问,此处可以使用一致性Hash算法,这个在之前的研究中写过了。
关系型数据库:
关系型数据库支持数据复制,主从热备等机制,但是大规模集群的可伸缩性很难做,因此针对关系型数据库的集群伸缩性方案必须在数据库之外实现,通过路由分区等手段将部署有多个数据库的服务器组成一个集群。
NoSQL数据库产品:
支持性非常好。
4.扩展性
网站可扩展结构的主要目的:使其能够快速响应需求变化。
主要标准:
在网站增加新业务产品时,是否可以实现对现有产品透明无影响,不需要改动或者很少改动既有业务就可以上线新产品。
主要手段:
事件驱动架构:利用消息队列实现;
分布式服务:业务和可复用业务分离开来,通过分布式服务框架调用。
5. 安全性
针对现存和潜在的各种攻击于窃密手段,是否有可靠的应对策略。