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

news/2024/5/21 1:02:52/文章来源:https://blog.csdn.net/weixin_45029822/article/details/104398980

大型网站架构概述

网站架构演化发展历程

初始阶段的网站(特点:没人)应用程序、数据库、文件都在一个服务器
在这里插入图片描述

应用服务和数据服务分离

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

应用服务器

  • 处理大量的业务
  • 需要更快更强的CPU

数据库服务器

  • 需要快速磁盘检索和数据缓存
  • 需要更快的硬盘和更大的内存

文件服务器

  • 要存大量k的用户上传文件
  • 需要更大的硬盘

在这里插入图片描述

使用缓存改善网站性能

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

网站使用的缓存可以分为两种:

缓存在应用服务器上的本地缓存和缓存在专门门的分布缓存服务器上的远程缓存

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

缓存技术:

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

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

在这里插入图片描述

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

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

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

数据库读写分离

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

在这里插入图片描述

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

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

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

在这里插入图片描述

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

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

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

在这里插入图片描述

使用NoSQL和搜索引擎

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

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

在这里插入图片描述

业务拆分

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

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

在这里插入图片描述

分布式服务

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

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

在这里插入图片描述

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

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

相关文章

为程序员准备的7个国外社交网站

Forrst Forrest是为开发人员和设计师提供的一个新兴的地方,在这里可以分享代码和截图以及链接,启发你的灵感。如果你曾想为你的一块代码获得一些专业实诚 的建议;如果你在几个logo中没法做出决定的时候,Forrst正好适合你。此社区正…

技术网站

VC知识库:http://www.vckbase.com/; 0GiNr技术社区(我们的微型技术圈):http://krnl.info/; 看雪学院:http://bbs.pediy.com/; 在线编程挑战平台Interview Street:ht…

浏览器只有百度不能上网,其他网站上网正常

发现一个问题,困然了我几天,下班之前电脑好好的,都是正常,第二天上班,浏览器有关百度的网址全部打不开,还有部分网址也打不开,查看了host文件,更改刷新了dns,也更改了浏览…

今年2月 黑客组织Anonymous 攻陷技术公司HBGary Federal的网站,由此带来的7点教训

黑客组织Anonymous组织采用了一系列简单的技术方法和社会工程学来攻击安全技术公司HBGary Federal公司的网络,这其中涵盖的很多网络技术问题都值得其他网络安全专家借鉴。 最重要的教训就是:认真遵循企业防御基本的最佳做法。另外还可以从HBGary Federal…

建站流程

文章目录 建站流程前期准备工作登录厂商账号在管理中心下面现在进入运营中心 建站流程 前期准备工作 需要:厂商账号,前台域名…… 登录厂商账号 在管理中心下面 进入管理中心 > 用户 > 组织机构 > 全平台 填写相关信息(不知道…

关于phpStudy如何修改默认网站

#####摘要:使用过php开发项目的IT猴子90%的人都是知道有这一个本地项目搭建的圣器——phpStudy。phpStudy支持Web端管理,一键创建网站、FTP、数据库、SSL;安全管理,计划任务,文件管理,PHP多版本共存及切换&…

导入他人的网站很多页面找不到的可能原因

问题与原因:有的时候,导入他人的项目页面无法加载,报了很多404的问题,而直接根据自己实际的网站路径却能访问成功。这是因为某些网站前端加载的界面写的是绝对路径,而不同人部署的网站根目录的不同,就导致了…

NET MVC 2 多语言网站的实现

.NET MVC 2 多语言网站的实现 2010-10-24 12:26:10| 分类: .net mvc | 标签: |字号大中小 订阅 要求如下: 1,用 Resources 2,分离项目(Model , Controller 等分开成子项目) 3,简单 因为要用 Resources ,所以很…

网站架构之架构演化

网站从构建之初的很少有人问津,用户数量较少,并发量较低,到之后的拥有千万上亿用户,数万量级的高并发,之间经历了怎样的过程,小型网站架构是怎样逐步演化的,本文简单探讨下这方面的内容&#xf…

基于renren.com和google map的sns网站

基于renren.com和google map的sns网站 网站介绍及寻找合作伙伴 站点名称 网站的功能 意见及建议 支持与合作 站点名称 本网 站基于renren.com和google map的开放的api,充分利用了renren的sns属性和google map的直观视图,故网站暂定名RenrenMap 。 回…

搭建网站之路

我是在申请一个阿里云服务器之后才想起搭建网站的,哈哈,我的驱动力就是好玩。下面说下我搭建人生中中第一个网站(博客)的心里路程 1、首先申请一个服务器 我申请的是阿里云服务器,centos6.6的操作系统,1G内存,20G的磁…

打开网站工程时遇到配置bower显示404的问题。

在装了mongodb和nodejs准备打开一个网站项目时(网页包含angular),却发现,打开后网页的内容全是混乱的。然后查看nodejs的运行状况,发现有些包含bower的项目(特别是有些angular的项目)显示的是40…

Python学习记录-网站爬点句子

背景 想用python上网爬点句子,于是花一下午的时间来做这件事,这只是一个简单的例子,不过对于入坑来说nn conda使用 顺便添加一下conda的使用,之前一直是用python自带的virtualenv工具,安装了anoconda后还是觉得cond…

不同网站和页面爬虫知识点

1、json.loads()解码python json格式 json.load()加载python json格式文件 因此使用requests.get(url)和urllib.urlopen(url)获取内容的方式如下: 2、关于爬取Ajax动态加载(翻页时url不变)的网页网站 (1)中国票房网&a…

Github 无法登陆,网站超时问题

网络诊断为:电脑配置没有问题,但是该网站服务器资源无法访问。 简单点直接上解决办法:在hosts文件中添加网站IP。 在文件目录下:C:\Windows\System32\drivers\etc 中,将hosts文件复制到桌面,右键 【属性】…

基于httpd搭建web静态网站

.搭建静态网站 要求: >基于ip实现web网站访问 建立一个xxx.xxx.xxx.100的网站,文件放在/www/100,内容显示this is xxx.xxx.xxx.100. 建立一个xxx.xxx.xxx.200的网站,文件放在/www/200,内容显示this is xxx.xxx.xxx.200. 安装httpd&#x…

android源码常用网站

泡在网上的日子http://www.jcodecraeer.com/plus/list.php?tid31 2.安卓源码服务专家http://www.javaapk.com 3.伯乐在线http://hao.jobbole.com/category/android/ A5源码:http://down.admin5.com/ 安卓巴士:http://www.apkbus.com/ 当然还有开源中国&…

大规模网站架构缓存

一、前端Cache机制 1. 域名转为IP地址(域名服务器DNS缓存) 我们知道域名其实只是一个别名,真实的服务器请求地址,实际上是一个IP地址。获得IP地址的方式,就是查询DNS映射表。虽然这是一个非常简单的查询, 但…

查看IIS日志以及网站对应的IIS日志文件夹

1.为什么要查看IIS日志? 有时,我们在部署了一个程序之后,虽然程序里面记载了log日志,但有些类似503这样的错误在程序里面是无法记载的,所以我们需要通过查看IIS日志来查找问题。 2.IIS日志目录 点进去之后,…

极其简洁的购物商城静态网站

极其简洁的购物商城静态网站 首先介绍一下使用了那些东西做的。 整体使用html5cssjs(少量)jquery(一点点 ) 实现内容有 js轮播图,canvas实现飘雪,背景音乐。这些比较垃圾的功能大部分都借鉴了其他人的实现…