大型网站架构学习整理(一)

原创 2018年04月16日 14:24:57

最近在看李智慧的《大型网站技术架构 核心原理与案例分析》,该部分内容是在学习过程中的整理,方便以后重温。

一、大型网站架构演化

1.1 大型网站系统的特点

高并发、流量大、高可用、用户多、需求迭代快。

1.2 大型网站系统的演化发展历程

大型网站的技术挑战主要来自庞大的用户、高并发的访问、和海量的数据。因此大型网络架构主要解决处理的就是类似的问题。
大型网站都是由小型网站发展而来,访问量少,可以单台服务器就搞定。随着业务发展,将应用和数据进行分离,不同特性的服务器承担不同的服务角色:应用服务器需要处理大量的业务逻辑(需要更快更强大的CPU),数据库服务器需要快速磁盘检索和数据缓存(需要更快的硬盘和更大的内存)等等。

1. 应用服务与数据服务分离
2. 使用缓存改善数据库压力

网站访问的特点遵循二八定律:80%的业务访问集中在20%的数据上。为了减少数据库的压力,可以将一部分数据缓存在内存中。
网站使用的缓存可以分为两类:
 1. 本地缓存
 本地缓存是指在应用服务器内存的缓存数据。本地缓存访问速度更快一些,但是受应用服务器的内存限制。
 2. 远程缓存
 远程缓存是指在专门的分布式缓存服务器上的缓存数据。远程分布式缓存可通过集群,部署大内存服务器作为专门的缓存服务器。

3. 使用服务器集群改善并发处理能力

 增加服务器是改善系统并发处理能力的最简单的做法,通过调用负载均衡,可将来自用户的访问请求分发到应用集群的任何一台服务器上。

4. 数据库读写分离改善数据库负载压力

数据库的读写分离本质上是设置主备两个库。主库负责写数据,备库负责读取数据。通过设置两个数据库的主从关系,可以将主库的数据更新同步的备库上可以改善数据库负载问题。

5. 使用CDN和反向代理加速网站响应

使用CDN(content delivery network)和反向代理的目的是尽早返回数据给用户,一方面加快用户访问速度,一方面减轻后端服务器的负载压力。

6. 使用分布式系统和分布式数据库系统

分布式系统是将原有应用系统的共用的业务提取出来,独立部署。而应用系统只需要管理用户界面。
分布式数据库系统是网络数据库拆分的最后手段。网站最常用的数据库拆分手段是:业务拆库,将不同的业务数据库部署在不同的物理服务器上。

7. 使用NoSQL和搜索引擎

NoSQL和搜索引擎对可伸缩的分布式特性都具有更好的支持。通过一个统一数据访问模块访问各种数据,减轻应用程序管理数据源的麻烦。

::细细品味ASP.NET (二)::

细细品味ASP.NET (二)青苹果工作室(编译) 01-5-17 下午 01:33:55Web表单 ASP.NET Web Forms就是Web页面,同现在你用 ASP编写代码所做的工作是一样的。...
  • coolstar
  • coolstar
  • 2001-05-23 13:07:00
  • 735

Kafka学习整理一(基础概念)

Kafka基础概念Kafka中包含以下基础概念 1. Topic(话题):Kafka中用于区分不同类别信息的类别名称。由producer指定 2. Producer(生产者):将消息发布到Kafk...
  • LOUISLIAOXH
  • LOUISLIAOXH
  • 2016-05-27 16:35:42
  • 3766

zabbix学习总结(1)

zabbix作为一个开源的监控系统,使用越来越广泛。在对zabbix使用了一段时间后,我认为应该做一些总结,把我所了解的zabbix写出来。       先来看一副图: ...
  • tlqfreedom
  • tlqfreedom
  • 2014-08-25 14:41:34
  • 946

聪明人的一张纸工作整理术(epub版)

  • 2017年09月21日 14:11
  • 1.9MB
  • 下载

大型网站架构体系的演变(上)

互联网上有很多关于网站架构的各种分享,有些主要是从运维和基础架构的角度去分析的(堆机器,做集群),太关注技术细节实现,普通的开发人员基本看不太懂。 本文上篇将主要介绍大型网站基础架构的扩展,下篇则重点...
  • dinglang_2009
  • dinglang_2009
  • 2015-06-07 11:28:38
  • 13593

大型网站技术架构.pdf

  • 2017年11月01日 13:43
  • 37.64MB
  • 下载

大型网站架构大型网站架构

  • 2011年06月15日 14:52
  • 374KB
  • 下载

人脸识别博客整理及学习建议

一、前言之前基于OpenCV断断续续写了几篇关于人脸识别的博客。最开始是写了三篇一系列整套的流程。后来由于问问题的人太多,就又针对一些问题写了些东西,后来OpenCV3出来之后把程序又改成了OpenC...
  • xingchenbingbuyu
  • xingchenbingbuyu
  • 2017-12-14 11:41:09
  • 2640

zabbix学习总结(2)

zabbix中有许多术语,这些术语构成了zabbix的主要功能,先来认识一下。       项目(item),项目就是zabbix server要从被监控端获取的数据,一个项目就是一个要获取的数...
  • tlqfreedom
  • tlqfreedom
  • 2014-08-25 15:11:07
  • 524

java基础知识整理(java编程思想1-6章)

// 注释:源于现在已经快是大四了,到现在为止,学习编程也没多久,课堂在上自学,知识点实在是碎片化。加之自己   //又没有实际项目经验,现在都不知道自己学了些什么东西。于是开始整理所学知识碎片,也当...
  • hanpompy
  • hanpompy
  • 2012-05-30 17:32:44
  • 1005
收藏助手
不良信息举报
您举报文章:大型网站架构学习整理(一)
举报原因:
原因补充:

(最多只允许输入30个字)