常见的网站服务器架构

news/2024/5/8 23:20:18/文章来源:https://blog.csdn.net/weixin_30248399/article/details/97804595

转:

    1. 初始阶段的网站架构
      一般来讲,大型网站都是从小型网站发展而来,一开始的架构都比较简单,随着业务复杂和用户量的激增,才开始做很多架构上的改进。当它还是小型网站的时候,没有太多访客,一般来讲只需要一台服务器就够了,这时应用程序、数据库、文件等所有资源都在一台服务器上,网站架构如下图所示:
      在这里插入图片描述
    2. 应用服务和数据服务分离
      随着网站业务的发展和用户量的增加,一台服务器就无法再满足需求了。大量用户访问导致访问速度越来越慢,而逐渐增加的数据也会导致存储空间不足。这时就需要将应用和数据分离,应用和数据分离后整个网站使用3台服务器:应用服务器、文件服务器和数据库服务器。这3台服务器对硬件资源的要求各不相同:
      (1)应用服务器业务逻辑,需要强大的CPU
      (2)数据库服务器对磁盘读写操作很多,需要更快的磁盘和更大的内存
      (3)文件服务器存储用户上传的文件,因此需要更大的磁盘空间
      此时,网站系统的架构如下图所示:
      在这里插入图片描述
    3. 使用缓存改善网站性能
      随着用户再增加,网站会又一次面临挑战:数据库压力太大导致整站访问效率再次下降,用户体验受到影响。一个网站,往往80%的业务访问集中在20%的数据上,比如微博请求量最多的肯定是哪些千万级粉丝的大V的微博,而几乎没有人关注你的首页。既然大部分业务访问集中在一小部分数据上,那就把这一小部分数据先提前缓存在内存中,而不是每次都去数据库中读取,这样就可以减少数据库的访问压力,从而提高整个网站的访问速度。
      网站使用的缓存一般分为缓存到应用服务器或者缓存在专门的分布式缓存服务器。缓存在应用服务器自己的访问速度快很多,但是受自身内存限制,往往不太适用。远程分布式缓存使用一个集群专门负责缓存服务,当内存不够还可以轻松地动态扩容。
      在这里插入图片描述
    4. 使用应用服务器集群改善网站的开发处理能力
      使用缓存后,数据访问压力得到了缓解,但是单一应用服务器能够处理的请求连接有限,在网站访问高峰期,应用服务器就成了整个网站的效率瓶颈。使用分布式集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力和存储空间不足时,不要尝试去更换更强大的服务器,对大型网站而言,多么强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。对网站架构而言,只要能通过增加一台服务器的方式改善负载压力,就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统的可伸缩性。应用服务器实现集群是网站可伸缩架构设计中较为简单成熟的一种,如下图所示:
      在这里插入图片描述
      通过负载均衡调度服务器,可以将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多用户,就在集群中加入更多的应用服务器,使应用服务器的压力不再成为整个网站的瓶颈。
    5. 数据库读写分离
      网站在使用缓存后,使对大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(缓存访问不命中、缓存过期)和全部的写操作都需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站利用数据库的这一功能,实现数据库读写分离,从而改善数据库负载压力。如下图所示:
      在这里插入图片描述
      应用服务器在写数据的时候,访问主数据库,主数据库通过从复制机制将数据更新同步到从数据库,这样当应用服务器读取数据的时候,就可以通过从数据库获得数据。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离对应用透明。
    6. 使用反响代理和CDN加速网站响应
      随着网站业务不断发展,用户规模越来越大,由于中国复杂的网络环境,不同地区的用户访问网站时,速度差别也极大。有研究表明,网站访问延迟和用户流失率正相关,网站访问越慢,用户越容易失去耐心而离开。为了提供更好的用户体验,留住用户,网站需要加速网站访问速度。主要手段有使用CDN和反向代理。如下图所示:
      在这里插入图片描述
    7. 使用分布式文件系统和分布式数据库系统
      任何强大的单一服务器都满足不了大型网站持续增长的业务需求。数据库经过读写分离后,从一台服务器拆分成两台服务器,但是随着网站业务的发展依然不能满足需求,这时需要使用分布式数据库。文件系统也一样,需要使用分布式文件系统。如下图所示:
      在这里插入图片描述
      分布式数据库是网站数据库拆分的最后手段,只有在单表数据规模非常庞大的时候才使用。不到不得已时,网站更常用的数据库拆分手段是业务分库,将不同业务的数据部署在不同的物理服务器上。
    8. 使用NoSQL和搜索引擎
      随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎。如下图所示:
      在这里插入图片描述
      NoSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。
    9. 业务拆分
      大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线。如大型购物交易网站都会讲首页、商铺、订单、买家、卖家等拆分长不同的产品线,分归不同的业务团队负责。
      具体到技术上,也会根据产品线划分,将一个网站拆分成许多不同的应用,每个应用独立部署。应用之间可以通过一个超链接建立关系(在首页上的导航链接每个都指向不同的应用地址),也可以通过消息队列进行数据分发,当然最多的还是通过访问同一个数据存储系统来构成一个关联的完整系统,如下图所示:
      在这里插入图片描述

转载于:https://www.cnblogs.com/ztf20/p/10838300.html

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

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

相关文章

网站项目模型及业务流程分析

随着技术的不断发展和用户对网站功能性的需求不断提高,如今网站项目的设计已经不能再仅仅简单地利用静态Html文件来实现,与前几年网站设计由一两名网页设计师自由的创作相比,网站项目的设计和开发越来越像一个软件工程,也越来越复…

php在动态网站开发中的应用研究,php在动态网站开发中的优势.pdf

php在动态网站开发中的优势.pdf还剩3页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,喜欢就下载吧,价低环保!内容要点:PHP在动态网站开发中的优势作者: 杜闯, DU Ch…

【亲测有效】功能强大操作简单的wordpress网站静态缓存提速教程

之前用过很多的WORDPRESS的网站提速方案,常用的图片和静态文件CDN加速就不说了,这个是基础。今天我要分享是HTML页面的提速。 WORDPRESS网站内容都是存在数据库里,如果HTML本身内容不能静态化,提速性能非常有限。每次访问网站都读…

【Web】博客、个人网站背景美化的几个方法(sakura / canvas-nest / particles)

飞舞樱花 引入 只需要在主页插入&#xff1a; <script type"text/javascript" src"https://cdn.jsdelivr.net/gh/Ukenn2112/UkennWeb3.0/index/web.js"></script>效果 三角体 得益于 canvas-nest.js &#xff0c;可以实现背景三角体悬浮且…

个人在线学习网站(第五章 电子书管理功能开发)

新增一个ebook页面--新增路由 the-header加菜单--点击跳转的页面--在index中添加路由--在the-header中跳转路由 使用PageHelper实现后端分页 集成PageHelper插件 <!-- pagehelper 插件--><dependency><groupId>com.github.pagehelper</groupId>&l…

给你的网站增加拉姆雷姆回到顶部按钮

使用 在 footer 引入&#xff1a; <script src"https://cdn.jsdelivr.net/gh/fz6m/Private-web2.0.7/js/custom/lamu-leimu.min.js"></script>注&#xff1a;如果你的网站 / 博客还有回到顶部的按钮&#xff0c;请自行找到节点删除或者 style"dis…

react在github pages的路由匹配和vue的区别(网站子路径同理)

Vue 在 vue 部署到 github pages 时&#xff0c;我们可以借助 vue 脚手架可以读取 --mode 命令参数的特性&#xff0c;自定义一个 github 环境。 在项目根目录下建立 .env.github &#xff1a; NODE_ENV github VUE_APP_PATH /repo-name/在 package.json 添加 script &#…

给你的网站添加一个中国新年灯笼挂件(网页/博客美化)

效果 预览 实际 使用 默认 <body><!-- 在页面最后引入 --><script src"https://cdn.jsdelivr.net/gh/fz6m/china-lantern1.1/dist/china-lantern.min.js"></script></body>php <?phpdate_default_timezone_set(PRC);$year da…

利用免费的GAE(Google App Engine)建立强大的Blog(micolog)网站

看着个题目可能很玄乎&#xff0c;本来也想写的玄乎玄乎的&#xff0c;但Google了一下&#xff0c;觉得没有必要写的这么玄乎&#xff0c;其实&#xff0c;今天我就是要给大家介绍一款非常优秀的基于python(能够支持GAE)的blog程序而已&#xff0c;所以本文就言简意赅&#xff…

python关键词挖掘_seo必备工具,python采集关键词挖掘数据

采集数据来源于站长之家&#xff01; 需要输入关键词&#xff01; 引用的库 import requests from lxml import etree import re import xlwt import time例子&#xff1a; 1.etree采集列表 2.切片操作 3.保存excel格式 #站长工具关键词挖掘 # -*- codingutf-8 -*- import requ…

分享25个优秀的活动邀请网站设计案例

互联网出现以前只能用纸和笔制作简单的邀请函&#xff0c;如今婚礼、活动和会议等邀请都可以做成非常有创意的网页了。所以&#xff0c;今天本文要与大家分享的是25个优秀的活动邀请网站设计案例。 1. Herra & Viking 2. Camp Firebelly 3. Edinburg2Liverpool 4. Evening …

怎样在SharePoint 2010网站中启用匿名访问

SharePoint 2010的改动比较大&#xff0c;尤其是相对SharePoint Portal Server 2003来说。本文介绍在SharePoint 2010站点中启用匿名访问的步骤。 &#xff08;1&#xff09;你要用SharePoint 2010的“管理中心”创建一个站点&#xff0c;一般来说&#xff0c;这一步都已经创建…

weboffice 比较好的源码_源码网站和模板网站的区别

根据网站开发的方式&#xff0c;可以将网站分为源码网站和模板网站。源码网站就是指网站是全新开发的&#xff0c;全新设计&#xff0c;全新代码进行开发&#xff0c;而模板网站就相对简单&#xff0c;就是在模板的网站代码的基础上进行简单的修改和部署。对于很多客户来说&…

快站模板 连接mysql_如何轻松建站?站点一键部署搭建(详细教程)

越来越多的人选择个人建站&#xff0c;个人站长虽然门槛很低&#xff0c;但是有些朋友觉得Linux服务器各种复杂的命令脚本让自己没法搭建环境。今天就给大家推荐一款使用方便、功能强大的快速建站工具——云帮手&#xff0c;支持 Linux 与 Windows 系统&#xff0c;可一键配置搭…

防止菠菜上传PHP文件,对某菠菜网站的一次渗透测试

无意间发现一个thinkphp的菠菜站&#xff0c;最近tp不是刚好有个漏洞吗&#xff1f;然后就顺手测试了一下&#xff0c;但过程并不太顺利&#xff0c;不过最后还是拿下了&#xff0c;所以特发此文分享下思路。简单看了下&#xff0c;应该有不少人玩吧&#xff1f;正好前几天写了…

php echo表单提交_从建站打拿站 -- PHP(登录和注册)

小孩子才会喝的一塌糊涂 而我必须带着钥匙拿好手机记住回家的路。。。。---- 网易云热评在HTML基础中&#xff0c;做了两张静态页面&#xff08;登录和注册&#xff09;&#xff0c;现在我们配合PHP动态页面进行操作。一、登录页面(GET)1、action属性修改为"../php/dl.php…

网站logo服务器更换显示以前,爆料:许多老网站的站点LOGO停止显示

据买链接站长QQ爆料&#xff1a;很多老站的百度logo图片在百度搜索结果中不显示了。目前是中小网站免费的logo不在了&#xff0c;包括10几年以前排名前1.2.3名的老站。据该站长介绍说&#xff1a;我很多站长朋友老站&#xff0c;中小级别的logo都消失了&#xff0c;最近开始&am…

构建LEMP网站服务平台

Nginx 是一个很强大的高性能Web和反向代理服务器&#xff0c;它具有很多非常优越的特性&#xff1a;在高连接并发的情况下&#xff0c;Nginx是Apache服务器不错的替代品&#xff1a;Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达50,000 个并发连接…

分享一些背景虚化背景图 适合大气、高质感的网站

2019独角兽企业重金招聘Python工程师标准>>> 一组5个高品质的散焦图像&#xff0c;为您的下一个设计项目作为覆盖或背景使用起来非常顺手。或者干脆用它们作为屏幕壁纸, 压缩包一共7M之多&#xff0c;暂时先上传几张图片&#xff0c;供大家看看货……&#xff0c;格…

【兴趣】 让人欲罢不能的15个涂鸦网站!

推荐这十几个涂鸦网站&#xff0c;它们有的纯粹好玩&#xff0c;有的对学画画有帮助&#xff0c;或者两者兼有。它们未必比游戏差&#xff0c;闲暇之余还是值得一玩哒o(〃▽〃)o 注&#xff1a; 请使用电脑登录&#xff0c;手机是玩不了的 部分网站不稳定&#xff0c;可能进不…