企业实战 -大型网站架构概述

news/2024/5/12 12:01:12/文章来源:https://blog.csdn.net/qq_36275923/article/details/104388371

文章目录

  • 企业实战 -大型网站架构概述
    • 网站架构的发展历程
      • 初始阶段的网站
      • 应用和数据分离
      • 使用缓存改善网站性能
        • 缓存技术:
      • 使用应用服务器集群改善并发处理能力
      • 数据库读写分离
      • 使用反向代理和CDN加速网站响应
      • 使用分布式文件系统和分布式数据库系统
      • 使用NoSQL和搜索引擎
      • 业务拆分
      • 分布式服务

企业实战 -大型网站架构概述

网站架构的发展历程

初始阶段的网站

  初始阶段的网站(特点:没人),应用程序、数据库、文件都在一个服务器。

在这里插入图片描述

应用和数据分离

  随网站业务的发展,一台服务器逐渐不能满足需求:性能越来越差,存储空间不足。这时就需要应用和数据分离

应用服务器:
处理大量的业务
需要更快更强的CPU

数据库服务器:
需要快速磁盘检索和数据缓存
需要更快的硬盘和更大的内存

文件服务器:
要存大的用户上传文件
需要更大的硬盘

在这里插入图片描述

使用缓存改善网站性能

  网站访问的特点和二八定律一样: 80%的业务访问集中在
20%的数据上。所以如果把这一小部分数据缓存在内存中,
可以减少数据库的访问压力,提高整个网站的数据访问速
度,改善数据库的写入性能

  网站使用的缓存可以分为两种:缓存在应用服务器上的本地
缓存和缓存在专门的分布缓存服务器上的远程缓存

  本地缓存的访问快一一些, 但受应用服务器内存限制,缓存数据有限
  远程分布式缓存可以使用集群的方式,部署大内存的服务器作为专门的缓存服务器,理论上做到不受内存容量的限制的缓存服务

缓存技术:

内容分发网络(CDN)反向代理
本地缓存分布式缓存

使用前提:|
1.数据访问热点不均衡
2.是数据在某个时间段内有效,不会很快过期

在这里插入图片描述

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

  使用缓存后,数据访问压力得到有效的缓解,但是单一应用
服务器能够处理的请求连接有限,在网站高峰期,应用服务器成为整个网站的瓶颈

  使用集群是网站解决高并发,海数据问题的常用手段。通过负载均衡调度服务器,可将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上。如果有更多用户,就是集群中加入更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈
在这里插入图片描述

数据库读写分离

  网站在使用缓存后,使绝大部分数据操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(缓存访问不命中,缓存过期)和全部的写操作需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。目前大部分的主流数据库都提供主从热备功能,通过配两台数据主从关系,可以将一台数据库服务的数据更新同步到另一台服务器上。网站利用数据库的这一功能,实现数据库的读写分离,从而改善数据库负载压力

在这里插入图片描述

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

  随着网站业务不断发展,用户规模越来越大,由于中国复杂的网络环境,不同地区的用户访问网站时,速度差别也极大,为了提供更好的用户体验,留住用户网站需要加速网站访问速度,主要手段有使用CDN的反向代理

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

在这里插入图片描述

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

  任何强大的单服务器都满足不了大型网站持续增长的业务需求。数据库经过读写分离后,从一台服务器拆分成两台服务器,但是随着网站业务的发展依然不能满足需求,这时需要使用分布式数据库,文件系统也是一样,需要使用分布式文件系统。

  分布式数据库是网站数据库拆分的最后手段,只有在单表规模非常大的时候才用。

  不到不得已时,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部善在不同的物理服务器上。

使用NoSQL和搜索引擎

  随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂,网站需要采用一些非关系数据库技术如NoSQL和非数据库查询技术如搜索引擎

  NoSQL的搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持。应用服务器则通过一个统一的数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

在这里插入图片描述

业务拆分

  大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线,如大型购物网站就会将首页、商铺、订单、买家、卖家等拆分成不同的产品项,分归不同的业务团队负责

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

分布式服务

  随业务拆分越来越小,存储系统越来越庞大,应用系统的整体复杂度呈指数级增加,部署维护越来越困难。由于所有应用要和所有数据库系统连接,在数万台服务器规模的网站中这些连接数目是服务器规模的平方,导致数据库连接资源不足,拒绝服务

  既然每一个应用都要执行许多相同的业务操作,比如用户管理、商品管理等,那么可以将这些共用的业务提取出来,独立部署。由这些可复用的业务连接数据库,提供业务服务,而应用系统只需要管理用户界面,通过分布式服务调用共用业务服务完成具体业务操作
在这里插入图片描述

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

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

相关文章

Android 设计相关网站推荐

这篇文章给大家介绍几个设计相关的网站&#xff0c;因为博主除了软件开发以外还比较喜欢设计&#xff0c;据我观察了解程序员普遍审美都是比较差的&#xff0c;所以这次给大家推荐几个我认为比较好的用来帮助开发和提升审美的网站。 <1> MaterialPalette&#xff1a;Mat…

PHP开发电脑网站支付宝支付详细流程(沙箱测试篇)

先附上我开始做沙箱测试的时候写的笔记 &#xff08;1&#xff09;准备工作 1、蚂蚁金服开放平台的商户账号&#xff08;个人账号不行&#xff09; 2、php5.5以上的开发环境 &#xff08;2&#xff09;具体流程 1、demo下载 进入蚂蚁金服开放平台的首页&#xff0c;选择文…

Thinkphp5开发电脑网站支付宝支付详细流程(线上测试篇)

在沙箱测试篇讲过的我在这里就不再做重复&#xff0c;详情请见上一篇PHP开发电脑网站支付宝支付详细流程&#xff08;沙箱测试篇&#xff09; 在沙箱测试的时候使用的是沙箱环境中的配置&#xff0c;现在进行线上测试&#xff0c;需要创建应用 1、创建应用 登录蚂蚁金服开放…

数据采集之爬取2019最好大学网站前四列排名保存为csv文件格式简单案例 BeautifulSoup

数据采集之爬取2019最好大学网站前四列排名 保存为csv文件格式 简单案例 BeautifulSoup 目录&#xff1a; 第一步 观察网页 第二步 使用requests、 BeautifulSoup解析数据 第三步 代码呈现结果 开始&#xff1a; 第一步 观察网页 第二步 使用request、 BeautifulSoup解析…

钉钉扫码登录第三方web网站,及得到用户详情信息

1 注册应用 &#xff08;1&#xff09;授权页面logo地址&#xff1a; 扫码设备显示的图片 &#xff08;2&#xff09;回调域名&#xff1a;用户扫码成功确认后跳转的页面&#xff08;等待页面&#xff09;&#xff0c;携带code(临时授权码&#xff09;和status&#xff08;防止…

政府网站普查,国办标准VS省市标准,谁更严格?谁的合格率更高?

政府网站普查政策实施多年&#xff0c;标准变化多次&#xff0c;目前实施的标准是2019年4月份发布的国务院办公厅制定的《政府网站与政务新媒体检查指标》和《政府网站与政务新媒体监管工作年度考核指标》。 随着普查的常态化&#xff0c;国务院每年根据国办标准抽查一次&…

Day10 总结:产品开发必备的63个网站和工具

点此进入目录&#xff1a;[干货] 十天 教你从创意到上线APP 大家都知道&#xff0c;“爱阅”本身就为我们收集了大量常用的热门网站&#xff08;这里面当然包括了技术类和设计类的网站&#xff09;&#xff0c;不过本篇还是列出在开发过程中用到的网站供大家参考。 1、产品原…

网页嵌入其他网站或新打开其他网页并发送消息

一、背景 公司A想开发一个包含功能1、2、3…的网站&#xff0c;经过调研发现&#xff0c;公司B开发的网站包含了其所需的一半功能&#xff0c;公司A想直接把公司B的网站嵌入到他们的网站中或通过一个按钮跳转到公司B的网站&#xff0c;并希望对公司B的网站做一些控制。 二、相…

20个快速学习CSS的网站

1. A List Apart CSS Topics 老牌CSS站点&#xff0c;从1999年开始一直致力于整理收集面向标准网页开发的优秀文章。 2. CSS Help Pile 收集整理了大量的CSS相关资源&#xff0c;而且归档非常清晰&#xff0c;查询非常方便。 3. CSS Basics 通过一系列教程讲述了CSS的基本概…

个人网站重构

1 占位图片生成 <img src"http://placehold.it/350x150"> 不用引入任何外部文件&#xff0c;会自动形成对应数字大小的图片。 2 关于伪元素和伪类 css3 为了区分两者&#xff0c;已经明确规定了伪类用一个冒号来表示&#xff0c;而伪元素则用两个冒号来表示…

个人网站漏洞修复

环境&#xff1a;Centos 7 && Apache 目录遍历 1.打开Apache 配置文件夹 apache配置文件:/etc/httpd/conf/httpd.conf Apache模块路径&#xff1a;/usr/sbin/apachectl web目录:/var/www/html 2.打开httpd.conf,找到Options Indexes FollowSymLinks 将Options Ind…

Google Code项目代码托管网站上Git版本控制系统使用简明教程

转自http://blog.csdn.net/snowdream86/article/details/6706265 作为一个著名的在线项目代码托管网站&#xff0c;Google Code目前主要支持三种版本控制系统&#xff0c;分别为Git, Mercurial和 Subversion。Subversion即SVN相信大家都已经熟知了&#xff0c;这里我们要介绍的…

利用Vultr主机安转宝塔Web面板搭建wordpress博客建站教程

本篇文章是针对新手个人站长&#xff0c;来教大家利用Vultr主机如何安装宝塔Web面板搭建wordpress博客的方法。 1、一台Vultr VPS主机。 2、注册Vultr账号创建VPS实例 创建VPS实例 点击Deploy Now创建服务器实例&#xff0c;Status显示Running表示已经成功安装&#xff0c;…

阿里云服务器安装WordPress,搭建自己的博客网站

阿里云服务器安装WordPress&#xff0c;搭建自己的博客网站 很多人都想搭建自己的博客网站&#xff0c;如今要实现自己的博客网站已经很简单了。这几天我就尝试了一下&#xff0c;随便记录下来&#xff0c;方便后人。 一个自己的博客网站至少需要这几点: 1、服务器。现在有不少…

web前端开发项目资源网站,私家珍藏!分享给大家

1.CodePen&#xff1a; http://codepen.io/ 网站里有很多很酷的特效&#xff0c;而且可以看到效果的源代码&#xff0c;也可以看到实现效果&#xff0c;是一个非常不错的前端开发学习资源网站。 这个是CodePen网站里的一个效果的源码截图&#xff0c;是不是很酷呀&#xff0…

聊一聊如何搭建高性能网站哪一些事

在开发中经常会遇到网站的性能平静下来&#xff0c;打开慢的情况。我们平常开发中怎么一步一步排查这些问题并 解决问题呢 在快节奏的时代中&#xff0c;慢是个不容忍受的事情。 一、 为什么会‘慢’呢&#xff1f; 慢的情况是多种多样的&#xff0c;比如&#xff1a; 用户体验…

java面试——面试题(大型网站数据瓶颈——数据库分库分表)

为什么要做读写分离&#xff1f;减少主库的压力数据库的分库分表

从知名网上展会平台matchupexpo.com分析SEO所必备的8项技能

尽管 SEO 已经存在了几十年&#xff0c;但许多大学仍然没有教授 SEO&#xff0c;也没有在大多数营销课程中提及&#xff08;至少我的经验告诉我是这样的&#xff09;。SEO 专业人员来自不同的背景。有些是程序员&#xff0c;有些是企业家&#xff0c;有些是传统营销人员&#x…

肉眼可见、当天会有效果的SEO方法(针对SEO初学者)

SEO立杆见影的方法简单的说就是以下5个&#xff1a; 选择正确的网址。 为每个页面创建标题和描述&#xff0c;例如&#xff1a; <title>2021中国世博会B2B电子商务批发产品线上展会平台</title>, <head> <meta name "description" conten…