大型网站技术架构(一)--大型网站架构演化

news/2024/5/21 1:02:36/文章来源:https://blog.csdn.net/u014609236/article/details/27110123
 看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及session独立存储和缓存,因此书本看起来还是挺通俗易懂的,而且作者李智慧给人的印象(书本)也挺深刻的,我从这本书中也学到了许多,了解的许多,但是理解还是比较抽象的,写出来才是真正的理解,因此准备写一系列的博客来介绍和加深理解大型网站技术架构。

        说道大型网站,就的先说大型网站的特点:高并发,大流量,高可用,海量数据等。下面就说说大型网站的架构演化过程吧。

1、初始阶段的网站架构

            初始阶段都比较简单,通常一台服务器就可以搞定一个网站了,看图。

2、应用服务和数据服务分离

        随着网站业务的发展,一台服务器逐渐不能满足需求;这时候就需要将应用和数据分离,如图。

3、使用缓存改善网站性能

        毫无疑问,现在的网站基本上都会使用缓存,即:80%的业务访问都会集中在20%的数据上。

4、使用应用服务器集群改善网站的并发处理能力

         因为单一应用服务器能够处理的请求连接有限,在网站访问高峰时期,应用服务器会成为整个网站的瓶颈。因此使用负载均衡处理器势在必然。通过负载均衡调度服务器,可将来自浏览器的访问请求分发到应用的集群中的任何一台服务器上。

5、数据库读写分离

         当用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。而目前主流的数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库的数据更新同步到另一台服务器上。网站利用数据库这一功能实现数据库读写分离,从而改善数据库负载压力。

6、使用反向代理和CDN加上网站相应

       提高网站的访问速度,主要手段有使用CDN和反向代理。

     CDN和反向代理的基本原理都是缓存,区别在于CDN部署在网络提供商的机房,而反向代理是部署在网站的中心机房,当用户请求到达中心机房后,首先访问的反向代理,如果反向代理缓存着用户请求的资源,则直接返回给用户。

7、使用分布式文件系统和分布式数据库系统

    任何强大的单一服务器都满足不了大型网站持续增长的业务需求。

     分布式数据库时网站数据库拆分的最后手段,只用在单表数据规模非常大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务拆分,将不同业务的数据部署在不同的物理服务器上

8、使用NoSQL和搜索引擎

       搜素引擎也基本已经形成现在大型网站必须提供的功能了,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。

9、业务拆分

        大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将真个网站业务拆分成不同的产品线。

         具体到技术上,也会根据产品线话费,将一个网站拆分成许多不同的应用,每个应用独立部署维护。应用之间可以通过超链接建立管理,也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。

10、分布式服务

       由于每一个应用系统都需要执行许多相同的业务操作,比如用户管理,session管理,那么可以将这些公用的业务提取出来,独立部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_884665.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李新SEO:360搜索还需多久才能追上百度搜索?

奇虎360搜索自2012年8月16日悄然上线后,似乎没有太大的动静。然而在神不知鬼不觉中,360搜索已经对整个搜索市场造成了冲击。下图是今年7月份国内搜索引擎市场份额: 从上图可以看出,国内搜索引擎市场,百度依旧占领主导地…

简易钓鱼网站的构建(Kali SetoolKit)

首先需要先安装 Kali Linux 1.打开setoolKit 界面如下: 2.输入1(社会工程学攻击) 3.输入2 (网站攻击) 4.输入3(钓鱼网站攻击) 5.输入2(网站克隆) 6.出现如下界面&…

资源网站收集

收集一些有趣的技术学习网址 1、机器人钢琴家 https://kevinzakka.github.io/robopianist-demo/ 谷歌一项研究的演示,可以根据乐曲生成对应的弹奏指法,在网页上再现出来,非常厉害。 2、i18n AI 助手 https://chatgpt-i18n.vercel.app 借助 C…

学习网站布局 案例{1}

网站 html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

给广大单身程序员介绍个开源的 “情侣网站”,女神感动到哭,追女神利器,脱单好帮手

首先&#xff0c;网站是这样的&#xff1a; 网站链接&#xff1a; http://www.fengyunxiao.cn 备用链接&#xff1a;http://t.cn/Ef6v2Uw 没错&#xff0c;粉粉的风格&#xff0c;女孩子最喜欢的风格。同时内容真实&#xff0c;情感丰富&#xff0c;互动方便&#xff0c;可玩性…

爬虫(二)requests 登陆某检索网站

1 import requests2 import os3 from PIL import Image4 import pytesseract5 import re6 7 rootUrl xxx8 # 构建登录页面url9 loginUrl rootUrl /sipopublicsearch/portal/uilogin-forwardLogin.shtml10 # 构建登陆页面headers11 rootHeaders {12 Cache-Control: max…

python requests模拟登陆带验证码的网站

作为之前专利爬虫的续篇&#xff0c;本篇准备描述如何通过python的requests模块登录专利查询网站。 环境准备 python 3.6requests chrome尝试 首先&#xff0c;我们使用chrome尝试登录专利网站&#xff0c;并通过network分析各个请求的相关信息。 通过分析network&#x…

如何在Microsoft Visual studio Ultimate 2012中安装配置Python 2.7和Diango1.5.1,并新建第一个网站

1.下载Python。 下载地址&#xff1a;https://www.python.org/downloads/windows/ 我的电脑是Windows 7 64位的操作系统&#xff0c;所以下载的是python-2.7.1&#xff11;.msi&#xff0c;下载步骤如下图&#xff1a; 其中&#xff0c;VS 2012对python的安装文件没有要求…

基于KNN算法的约会网站配对效果 python3.2

续前文 Python3.2 实现基于KNN算法的数据分类 。今天看完了《机器学习实战》中关于KNN算法的一个完整案例&#xff0c;将所有代码加了注释&#xff0c;并利用tkinter 将其改造为GUI式的交互界面。&#xff08;文中没有直接作用的方法我已经注释&#xff09; from numpy impor…

app和wap手机网站的区别在那里

app在大行其道的情况下&#xff0c;本人来发表关于app和手机wap网站的几个观点&#xff0c;希望对各位同仁有参考价值&#xff1a; 第一点 我们从依附的平台来看&#xff1a; 移动Wap网站&#xff1a;由移动设备的浏览器来支持&#xff0c;只要移动设备支持上网浏览网站基本上可…

Java Web学习十七:网站用户注册登录;预约信息

Java Web学习十七&#xff1a;网站用户注册&登录&#xff1b;预约信息 一&#xff1a;案例任务二&#xff1a;准备阶段三&#xff1a;代码分析与展示1.工具类的代码分析&#xff1a;2.注册功能代码分析 刚刚学习初期&#xff0c;我们写了网站用户的注册以及登录功能&#x…

黄阶中级-《大型网站技术架构》- 概述 - 修改0次

1、大型网站架构演化 互联网站的发展仅仅经历了 20 多年的时间。 大型网站软件系统的特点&#xff1a; 高并发、高流量。谷歌日均 PV 几十亿。 PV (访问量)&#xff1a;即 Page View , 即页面浏览量或点击量&#xff0c;用户每次刷新即被计算一次高可用。百度被黑就会成为热…

GCP搭建网站后403解决

由于开发需要&#xff0c;在本地用虚拟机配置了LNMP环境&#xff0c;使用的是Centos 6.8的yum安装&#xff0c;安装一切正常&#xff0c;但是使用默认的网站配置目录&#xff0c;是在/usr/share/nginx/html这个目录下。简直是有点奇葩了。 于是乎&#xff0c;我先将默认的配置…

【iPhone】网络编程–一起来做网站客户端(一)

http://www.pan-apps.com/?p281 最近几天&#xff0c;一直在学习网络编程方面&#xff0c;我觉得这是移动开发必须了解的知识吧 在实践中学习&#xff0c;才是最好的方法 于是就决定为公司OA系统做一个iphone客户端&#xff0c;但是前提是这个系统没有提供任何API,所以只能悲剧…

编程要趁早 BI推荐8个编程学习网站

http://www.cocoachina.com/applenews/devnews/2013/0329/5914.html 最近一个热门话题是雅虎以3000万美元收购了移动阅读应用Summly&#xff0c;真正让人吃惊的不是3000万美元的价格值不值&#xff0c;而是Summly的开发者--只有17岁的尼克达洛伊西奥。他12岁开始学习编程&#…

自动为 Gatsby网站中的 Markdown 页面添加 sidebar

0 简介 我想在Gatsby网站上创建Markdown页面时自动添加侧边栏。 有一个 starter “ gatsby-gitbook-starter” 可以支持markdown文件的侧边栏&#xff0c;但仅支持1级。 我希望能够支持更多级别。 你可以通过下面的命令安装这个starter。 gatsby new gatsby-gitbook-starter…

如何在标题栏title前添加网站logo?

第一种方法&#xff1a;据说在网站根目录下放着我们的ico型logo&#xff0c;命名为favicon.ico&#xff0c;浏览器会自动去找到并显示。试了试&#xff0c;在firefox23和ie8下都没有成功。 第二种方法&#xff1a;添加代码&#xff0c;如下&#xff1a; 1 <link rel"sh…

阿里云域名解析完成后仍然无法通过域名正常访问网站

通过阿里云进行域名解析后&#xff0c;仍然无法正常访问网站的解释&#xff0c;与解决办法 1、域名解析完成后&#xff0c;未在主机管理页面进行域名绑定。 域名绑定流程&#xff1a; 进入阿里云虚拟主机页面&#xff0c;找到相应的虚拟主机&#xff0c;点击后面的管理。 点击…

web页面性能优化以及SEO

前言&#xff1a; 在同样的网络环境下&#xff0c;两个同样能满足你的需求的网站&#xff0c;一个“Duang”的一下就加载出来了&#xff0c;一个纠结了半天才出来&#xff0c;你会选择哪个&#xff1f;研究表明&#xff1a;用户最满意的打开网页时间是2-5秒&#xff0c;如果等…

wordpress建站优化技巧

wordpress是一款开源的PHP博客程序&#xff0c;可以有大量的开源主题与插件&#xff0c;使用液非常简单&#xff0c;wordpress在全球范围应用都十分广泛&#xff0c;根据Pingdom.com最近发布的一份数据&#xff0c;2013年在Technorati排名前100的博客&#xff08;Technorati为一…