读《大型网站技术架构》第四天笔记——大型网站核心架构要素

大型网站核心架构要素

一个系统架构的好坏,往往与 性能、可用性、伸缩性、扩展性、安全性这五个架构要素分不开。

 

梦里常常坐着凤凰在天空翱翔

1.性能

性能,对于一个网站重要性,想必我就不用多说了,接下来我们就说说从哪些方面可以进行性能的优化。

1.在浏览器端

可以通过浏览器缓存、使用页面压缩、合理布局页面、减少Cookie传输等手段改善性能。

2.使用CDN

将网站静态内容分发至离用户最近的网络服务商机房,使用户通过最短访问路径获取数据。可以在网站机房部署反向代理服务器,缓存热点文件,加快请求响应速度,减轻应用服务器负载压力。

3.在应用服务器端

可以使用服务器本地缓存和分布式缓存,通过缓存在内存中的热点数据处理用户请求,加快请求处理过程,减轻数据库负载压力。

4.异步

异步操作将用户请求发送至消息队列等待后续任务处理,而当前请求直接返回响应给用户。

5.集群

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

6.代码优化

在代码层面,也可以通过使用多线程、改善内存管理等手段优化性能。

7.数据库

在数据库服务器端,索引、缓存、SQL优化等性能优化手段都已经比较成熟。而方兴未艾的NoSQL数据库通过优化数据模型、存储结构、伸缩特性等手段在性能方面的优势也日趋明显。

 

啥?我是个动漫迷,对,没错~

 

2.可用性

对大型网站而言,特别是比较知名网站,服务器宕机是一个重大的事故,轻则影响网站声誉,重则摊上官司。对于电子商户类网站来说,网站不可用意味着损失金额和用户,因此几乎所有网站都承诺7x24可用,但是这几乎是不可能的,总会有一些故障时间,一些知名大型网站可以做到4个9以上的可用性,也就是99.99%。

也许你会觉得这不就相当于100%了吗?但是在计算机中,是1就是1,是0就是0,不能存在 大约,大概,差不多 这种词汇,这只会体现你的不严谨。

 

网站高可用的主要手段冗余

应用部署在多台服务器上同时提供访问,通过负载均衡设备组成-个集群共同对外提供服务,任何一台服务器宕机,只需把请求切换到其他服务器就可实现应用的高可用,但是一个前提条件是应用服务器上不能保存请求的会话信息。否则服务器宕机,会话丢失,即使将用户请求转发到其他服务器上也无法完成业务处理。

 

那妩媚的一笑

3.伸缩性

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

衡量架构伸缩性主要标准:

是否可以用多台服务器构建集群,是否容易向集群中添加新的服务器。加入新的服务器后是否可以提供和原来的服务器无差别的服务。集群中可容纳的总的服务器数量是否有限制。

从以下几个方面谈谈怎么提升网站的伸缩性

1.对于应用服务器集群,只要服务器上不保存数据,所有服务器都是对等的,通过使用合适的负载均衡设备就可以向集群中不断加入服务器。

2.对于缓存服务器集群,加入新的服务器可能会导致缓存路由失效,进而导致集群中大部分缓存数据都无法访问。虽然缓存的数据可以通过数据库重新加载,但是如果应用已经严重依赖缓存,可能会导致整个网站崩溃。需要改进缓存路由算法保证缓存数据的可访问性。

3.关系数据库虽然支持数据复制,主从热备等机制,但是很难做到大规模集群的可伸缩性,因此关系数据库的集群伸缩性方案必须在数据库之外实现,通过路由分区等手段将部署有多个数据库的服务器组成一个集群。

 

随风飘动,儿时的记忆

4.扩展性

衡量网站架构扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要任何改动或者很少改动既有业务功能就可以上线新产品。

网站可伸缩架构的主要手段是事件驱动架构分布式服务。

  1. 驱动架构

    事件驱动架构在网站通常利用消息队列实现,将用户请求和其他业务事件构造成消息发布到消息队列,消息的理者作为消费者从消息队列中获取消息进行处理

  2. 分布式服务

分布式服务则是将业务和可复用服务分离开来,通过分布式服务框架调用。新增产品可以通过调用可复用的服务实现自身的业务逻辑,而对现有产品没有任何影响。

 

举例说明一下扩展性,大型网站为了保持市场地位,还会吸引第三方开发者,调用网站服务,使用网站数据开发周边产品,扩展网站业务。第三方开发者使用网站服务的生要途径是大型网站提供的开放平台接口。

比如说百度地图,提供了百度地图开发者中心,阿里云,提供了阿里云API平台,中国银联,提供了中国银联开发平台等等。(话说我这么给他们打广告,他们怎么都不给我钱呢~)

 

黄昏,夜幕降临

5.安全性

互联网是开放的,任何人在任何地方都可以访问网站。网站的安全架构就是保护网站不受恶意访问和攻击,保护网站的重要数据不被窃取。

衡量网站安全架构的标准就是针对现在存在和潜在的各种攻击与窃密手段,是否有可靠的应对策略。

 

小编我现在只想快点找到个女朋友

小结:

第四天的读后感:

  1. 今天最大收获大概就是知道了一个网站的架构设计主要围绕哪些方面来进行的,以及对性能优化,从哪些地方进行性能优化,平常在日常的开发工作中主要以优化sql以及代码为主,很少想到其他方面,作者在这边提及了许多方面确实是没想到的,

  2. 另一方面,知道了扩展性对网站重要性了,试想一下,如果一个网站的架构扩展性不咋地的话,新增一个需求时就会直接体现出来,会出现这种情况,改了一个地方,影响了多个地方,就相当于你刚刚修复好了一bug,然后突然绝望的发现,由于修复这个bug而引发了另外的bug,这种感觉,我相信很多人也深有体会吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值