网站后台架构理解( 二)

前面有点讲到对网站后台架构的初步理解,后来又去看了书,加深了了解。

架构就是最高层次的规划,难以改变的决定。 为了实现网站的高性能,高可用性,可伸缩性,可扩展性,网站安全等核心目标。从而形成的网站架构模式主要有:分层,分割,分布式,集群,缓存,异步,冗余,安全等 简单说说对他们的理解,

可能概念性的会比较多。因为只有理解了概念才能进行实例分析。实例分析将在下一节。

1、分层: 将系统在横向维度上切成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的调用组成一个完整的系统。简单的说,计算机硬件,操作系统,应用软件也可以看作是一种分层结构。网站分层一般分为应用层,服务层,数据层。而且还可以继续分层,如应用层还可以分为视图层和业务逻辑层,服务层也可以细分为数据接口层和逻辑技术层。 分层架构是逻辑上的,在物理部署上,可以布置在同一服务器上,但随着网站业务的发展,必须对已经分层的模块分离部署,每层分别部署在不同的服务器上。在网站的发展过程中,分层结构对网站支持高并发向发布式方向发展至关重要。

2、分割: 在纵向方面对软件进行切分。 网站越大,功能就越复杂,服务和数据处理的种类也越多,就可以将不同的功能和服务分割开便于不同模块的分布式布署。 例如,购物,论坛,搜索,广告分成不同的应用,由独立团队负责,部署在不同的服务器上。如果在同一个应用内部,业务复杂,会继续进行分割,如购物业务,进一步分成酒店预定,机票预定,小商品等更小的粒度。这些模块可以是独立的。

3、分布式: 对于大型的网,有了上面的分层和分割,是为了便于分布式布署。即把不同的模块布署在不同的服务器上。通过远程调用协同工作。 常用的有 分布式应用和服务 分布式静态资源 分布式数据和存储

4、集群: 上面使用分布式已经将分层和分割的模块独立布署。但对于用户访问集中的模块,如首页,还需要将独立布署的服务集群化。即多台服务器分别布署相同应用构成一个集群。通过负载均衡设备共同对外提供服务。当有更多用户访问时,只需向集群中加入新的机器,因为同一个应用由多台服务器提供,当一台服务器发生故障时,负载均衡设备会装请求发送到集群中其他服务器上。所以在网站应用中,即使是访问量很小的分布式应用和服务。也至少也要布署2台服务器构成一个小的集群提高系统的可用性。

5、缓存: 大型网站很多都使用了缓存设计。 缓存就是将数据存放在距离计算机最近的位置以加快处理速度。 CDN,缓存一些静态资源在离计终端最近的网络服务商,用户的网络请求总是最先到达他的网络服务商那里,就可以以最快的速度返回给用户。如视频网站和门户网站会将访问量大的热点内容缓存在CDN。 反向代理,网站前端的一部分,当请求到达网站数据中心时,最先访问的是反向代理服务器,直接返回数据给用户,不需要继续请求。 本地缓存, 分布式缓存,针对大型网站。装数据缓存在一个分布式集群中, 使用缓存有2个条件:数据在一定时间内不会过期,另外,数据是访问的热点。

6、异步:消息之间的传递不是同步调用,而是将一个业务操作分成多个阶段,每个阶段之间通过数据共享的方式异步执行进行协作。但会对用户体验,业务流程造成一定的影响。

7:冗余:数据库的备份,,另外一个就是主从分离,实时同步。 当然还有更多的模式,但是好的架构不是照搬的,而且对问题深刻理解基础上去实际应用的。 希望大家都来交流,共同探讨。

时间: 2024-10-11 17:30:57

网站后台架构理解( 二)的相关文章

网站后台架构理解(一)

最近接触了互联网网站架构,架构的演化,发展等, 刚刚学习,现在做个简单的理解,, 一.网站后台常用LAMP架构, System:  Linux/Unix 泛指,常用的有centos,debian,redhat,suse, Storage:  Mysql 开源的关系型数据库,可扩展到Memcached-分布式的内存对象缓存系统,在内存里维护一个统一的hash 表,能够存储各种格式的数据:图片,视频,文件以及数据库检索的结果.Hash表以Key,Vaual的KV值存储,用hashcode除以数组数求

利用ThinkPHP搭建网站后台架构

记录一下ThinkPHP搭建网站后台.调整好样式等操作步骤 下载好ThinkPHP(3.2.3),解压后将核心文件夹ThinkPHP以及index.php等文件复制到网站根目录如下图 对index.php文件进行操作,修改参数使生成的网站目录是自己想要的目录 <?php // 应用入口文件 // 检测PHP环境 if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !'); //设置响应头 header

大型网站技术架构(二)--架构模式

大型网站技术架构(一)--大型网站架构演化 每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复工作. 所谓网站架构模式即为了解决大型网站面临的高并发访问.海量数据.高可靠运行灯一系列问题与挑战.为此,在实践中提出了许多解决方案,以实现网站高性能.高可靠性.易伸缩.可扩展.安全等各种技术架构目标. 1.分层 分词是企业应用系统中最常见的一种架构牧师,将系统在横向维度上切分成几个部分,每个部分负责一部分相对简单并比较单一的职责,然后

大型网站技术架构(二):大型网站架构模式

每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复工作. 网站架构模式 分层 分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统. 在大型网站架构中采用分层结构,将网站软件分为应用层.服务层.数据层. 应用层负责具体业务和视图展示,如网站首页及搜索输入和结果展示等. 服务层为应用层提供服务支持,如用户管理服务.购物车服

大型网站技术架构(七)--网站的可扩展性架构

大型网站技术架构(一)--大型网站架构演化 大型网站技术架构(二)--架构模式 大型网站技术架构(三)--架构核心要素 大型网站技术架构(四)--网站的高性能架构 大型网站技术架构(五)--网站高可用架构 大型网站技术架构(六)--网站的伸缩性架构 扩展性是指对现有系统影响最小的情况下,系统功能可持续扩展或提升的能力. 设计网站可扩展架构的核心思想是模块化,并在此基础上,降低模块间的耦合性,提供模块的复用性.模块通过分布式部署,独立的模块部署在独立的服务器上(集群)从物理上分离模块之间的耦合关系

大型网站技术架构(四)--网站的高性能架构

大型网站技术架构(一)--大型网站架构演化 大型网站技术架构(二)--架构模式 大型网站技术架构(三)--架构核心要素 网站性能是客观的指标,可以具体体现到响应时间.吞吐量.并发数.性能计数器等技术指标. 1.性能测试指标 1.1 响应时间 指应用执行一个操作需要的时间,指从发出请求到最后收到响应数据所需要的时间.如下列出了系统常用的操作响应时间表. 操作 响应时间 打开一个网站 几秒 数据库查询一条记录(有索引) 十几毫秒 机械磁盘一次寻址定位 4毫秒 从机械磁盘顺序读取1M数据 2毫秒 从S

大型网站技术架构(八)--网站的安全架构

大型网站技术架构(一)--大型网站架构演化 大型网站技术架构(二)--架构模式 大型网站技术架构(三)--架构核心要素 大型网站技术架构(四)--网站的高性能架构 大型网站技术架构(五)--网站高可用架构 大型网站技术架构(六)--网站的伸缩性架构 大型网站技术架构(七)--网站的可扩展性架构 从互联网诞生起,安全威胁就一直伴随着网站的发展,各种Web攻击和信息泄露也从未停止.常见的攻击手段有XSS攻击.SQL注入.CSRF.Session劫持等. 1.XSS攻击 XSS攻击即跨站点脚本攻击(C

大型网站技术架构(五)--网站高可用架构

大型网站技术架构(一)--大型网站架构演化 大型网站技术架构(二)--架构模式 大型网站技术架构(三)--架构核心要素 大型网站技术架构(四)--网站的高性能架构 网站的可用性(Avaliability)描述网站可有效访问的特性. 1.网站可用性的度量与考核       网站不可用时间(故障时间)=故障修复时间点-故障发现(报告)时间点       网站年度不可用时间=(1-网站不可用时间/年度时间)× 100% 可用性指标时网站架构设计的重要指标,对外是服务承诺,对内是考核指标,具体到每个工程

个人网站架构设计(二)

昨天对网站的架构做了一个简要的分析,有些人不太理解,有了 NodeJS 还要 php 干啥?我推荐了几篇文章给这位童鞋看了: 也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离) 基于前后端分离的模版探索 Midway-ModelProxy - 轻量级的接口配置建模框架 前后端分离模式下的安全解决方案 Web 研发模式演变 如果是一个很小的网站,是用那么多层来处理请求和响应,确实是冗余的,不过我打算将这个网站设计成一个实时平台,这个平台中包含了很多很多的通信模块,所有后端选用 Nod