大型网站的核心架构要素

简介:

什么是架构,架构就是最高层次的规划,难以改变的决定。

人生规划也是一种架构。选什么学校,学什么专业,进什么公司,找什么对象,过什么生活,都是自己人生的架构。

软件架构,就是关于软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。

软件架构,需要关注性能、可用性、伸缩性、扩展性和安全性5个架构要素。

1.性能

从用户浏览器到数据库,影响用户请求的所有环节都可以进行性能优化。

浏览器端,可以通过浏览器缓存、页面压缩、合理布局等改善性能。

通过CDN,将网站静态内容,分发至离用户最近的网络服务商机房。

可以在网站机房部署反向代理服务器,缓存热点文件,加快请求响应速度。

在应用服务器端,可以使用服务器本地缓存和分布式缓存,加速请求处理过程。

在网站有很多用户高并发请求时,可以将多台应用服务器组成一个集群共同对外服务,提高整体处理能力。

在代码层面,可以使用多线程、改善内存管理等手段优化性能。使用高效的算法,减少内存和响应时间。

在数据库服务器端,索引、缓存、sql优化等,还有NoSQL数据库。

2.可用性

网站高可用的主要手段是冗余,应用部署在多台服务器上同时提供访问。

数据存储在多台服务器上互相备份,任何一台服务器宕机都不会影响应用的整体可用和数据丢失。

3.伸缩性

所谓伸缩性,是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。

4.扩展性

不同产品之间很少耦合,一个产品改动对其他产品无影响。

5.安全性

保证数据的安全性,准确性,不可窃取性。



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/7683198.html,如需转载请自行联系原作者

相关文章
|
7月前
|
数据库 开发者 微服务
单元化架构的设计要素
单元化架构的设计要素
|
消息中间件 测试技术 API
领域驱动设计中的架构要素
领域驱动设计中的架构要素
领域驱动设计中的架构要素
|
Web App开发 缓存 前端开发
谷歌谈SPA架构是如何影响网站核心指标的?
谷歌谈SPA架构是如何影响网站核心指标的?
188 0
谷歌谈SPA架构是如何影响网站核心指标的?
|
设计模式 架构师 NoSQL
阿里巴巴新产“Java架构核心宝典”,全是流行技术,限时开放
导言 什么是架构师?对于程序员来说,聊架构是一个永不过时的话题。实际上,每一家公司都有自己对架构师不同的定位,因为不同的公司,所处的阶段、业务模式以及应用场景都不一样,因此对架构师的要求不一样,所以定位也就不同。 但是,无论如何,架构师除了优秀的合作能力以及清晰的思路头脑以外,过硬的技术基础也是很有必要的,大型的互联网公司对架构师的技术要求也是非常高的。因此,学习架构技术,刻不容缓。
|
前端开发 Java 数据库
Spring架构及核心模块
1.Hello Spring Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,主要是为了解决企业应用开发的复杂性而诞生的。它采用模块化分层设计,具有以下特点: 轻量低侵入式设计,代码污染极低; 控制反转和依赖注入实现了松散耦合; 切面编程降低业务耦合度,提高程序的可重用性及开发效率; ORM和DAO简化了底层的数据库访问; 方便集成各种优秀框架等。
84 1
Spring架构及核心模块
|
消息中间件 存储 Java
RocketMQ 核心架构和概念|学习笔记
快速学习 RocketMQ 核心架构和概念
138 0
RocketMQ 核心架构和概念|学习笔记
|
SQL 关系型数据库 MySQL
MyCat - 架构剖析 - 核心技术之分布式事务的支持 | 学习笔记
快速学习 MyCat - 架构剖析 - 核心技术之分布式事务的支持
344 0
MyCat - 架构剖析 - 核心技术之分布式事务的支持 | 学习笔记
|
消息中间件 缓存 监控
阿里藏经阁天花板:高性能Java架构核心原理手册,一定要偷偷看
市面上讲Java框架的书很多,包括Sping Boot、Spring Cloud、Kafka等,但这些书通常只会让你技术的“量”增长,而“质”仍处于SSM的阶段。而且互联网上并没有体系化、结构化的提升技术的“质”的教材,于是这份阿里的高性能java架构核心手册就出来了!
阿里藏经阁天花板:高性能Java架构核心原理手册,一定要偷偷看
|
存储 分布式计算 资源调度
Spark框架深度理解三:运行架构、核心数据集RDD
Spark框架深度理解三:运行架构、核心数据集RDD
318 0
Spark框架深度理解三:运行架构、核心数据集RDD
|
设计模式 前端开发 Java
Tomcat源码-换个角度看架构和核心流程
Tomcat源码-换个角度看架构和核心流程
Tomcat源码-换个角度看架构和核心流程