一、大型网站软件系统的特点 1.高并发、大流量 a.什么是高并发?
高并发是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理多个请求。
b.高并发的衡量指标有哪些?(1)响应时间:系统对请求做出响应。例如系统处理一个HTTP请求需要200ms,这个200ms就是系统的响应时间。
(2)吞吐量:单位时间内处理的请求数量。
(3)QPS:每秒响应请求数。在互联网领域,这个指标和吞吐量区分的不那么明显。
(4)并发用户数:同时承载正常使用系统功能的用户数量。例如一个通讯系统,在线量一定程度上代表系统的并发用户数,比如腾讯QQ。
c.什么是大流量大流量这个词,顾名思义表示很多流量,这个很多可以用一千万,一亿或者百亿等来衡量。
以流量来说,这个词有比较多的含义,如:
(1)它可以表示手机无线网数据;
(2)网店或网站的访问量;
(3)流体通过量,如水流量等;
在这里主要指网站的流量(包含网站访问量)。
d.那么网站流量指标有哪些呢主要指标包括:
(1)独立访问者数量;
(2)重复访问者数量;
(3)页面浏览数;
(4)每个访问者的页面浏览数;
(5)用户在网站的停留时间;
(6)用户来源网站(又叫”引导网站”);
(7)用户所使用的搜索引擎及其关键字;
2.高可用:系统需要不间断提供服务 a.什么是高可用高可用是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供正常服务的时间。
假设系统一直能够提供服务,我们说系统的可用性是100%。
如果系统每运行100个时间单位,会有1个时间单位无法提供服务,系统的年停机时间为8.76个小时。
b.如何保障系统的高可用我们都知道,单点是系统高可用的大敌,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点挂了服务会受影响,如果有冗余备份,挂了还有其它backup能够顶上。
那么什么是单点呢?
你可以理解为所有的服务都在一个服务器上。
为什么要避免单点?
假定所有的服务在一个服务器上,如果该服务器因为某种原因挂掉了,那么所有的服务都会收到影响,从而会增长系统不能提供正常服务的时间。
3.海量数据(又称“大数据”)什么是是海量数据?海量数据又称大数据。对于大数据,研究机构给出了这样的定义:大数据是需要新处理模式才能具有更强的决策力、洞察力和流程化能力的海量、高增长率和多样化的信息资产。
从技术上看,大数据与云计算的关系就像一昧硬币的正反面。大数据必然无法用单台计算机进行处理,必须采用分布式架构。其特色在于可对海量数据进行分布式数据挖掘,但必须依托云计算的分布式处理、分布式数据库以及云存储、虚拟化技术。
大数据的特点(1)数据体量大,从TB级跃升到PB级别。
(2)数据类型繁多,比如网络日志、视频、图片、地理位置等。
(3)处理速度快。
(4)数据价值大。
4.用户分布广泛,网络情况复杂许多大型互联网都是为全球用户提供服务的,用户分布范围广,各地网络情况千差万别。在国内,还有各个运营商网络互通难的问题。
以在我老家的时候,联通的网络不好,移动的网络好,导致使用联通的用户使用软件受制于网络信号差而无法使用。
由于互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎每天都会被黑客攻击。以GitHub为例,无时无刻不在遭受到攻击。
6.需求快速变更,发布频繁和传统软件的版本发布频率不一样,互联网产品为了快速适应市场,满足用户需求,其产品发布频率是极高的。
7.渐进式发展:几乎所有的大网站都是从一个小网站开始的以最早期的淘宝来说,也是从单体应用来的。据说早期的架构是Linux+Apache+MySQL+PHP(LAMP)。
FaceBook是伯克扎克同学在哈佛大学的宿舍里开发的;Google的第一台服务器部署在斯坦福大学的实验室;阿里巴巴则是在马云家的客厅里诞生。
好的互联网产品都是慢慢运营出来的,不是一开始就开发好的,这也正好与网站架构的发展演化过程对应。