网站的海量数据和高并发的解决方案(二)

news/2024/5/20 11:32:02/文章来源:https://abelyang.blog.csdn.net/article/details/71435926

高并发的解决方案

除了数据量大,另外一个常见的问题就是并发量高,很多架构就是针对这个问题设计出来的。

1.应用和静态资源分离

刚开始的时候应用和静态资源是保存在一起的,当并发量达到一定程度的时候就需要将静态资源保存到专门的服务器中,静态资源主要包括图片、视频、js、css和一些资源文件等,这些文件因为没有状态所以分离比较简单,直接存放到响应的服务器就可以了,一般会使用专门的域名去访问。
通过不同的域名可以让浏览器直接访问资源服务器而不需要再访问应用服务器了。架构图如下:

这里写图片描述

2.页面缓存

页面缓存是将应用生成的页面缓存起来,这样就不需要每次都生成页面了,从而可以节省大量的CPU资源,如果将缓存的页面放到内存中速度就更快了。如果使用Nginx服务器就可以使用它自带的缓存功能,当然也可以使用专门的Squid 服务器。页面缓存的默认失效机制一班都是按缓存时间处理的,当然也可以在修改数据之后手动让相应的缓存失效。
页面缓存主要是使用在数据很少发生变化的页面,但是很多页面是大部分数据都很少发生变化,而其中很少一部分数据变化频率却非常高,比如说一个显示文章的页面,正常来说完全可以静态化,但是如果文章后面有“顶”和“踩”的功能而且显示的有响应的数量,这个数据的变化频率就比较高了,这就会影响静态化。这个问题可以用先生成静态页面然后使用Ajax来读取并修改响应的数据,这样就可以一举两得来,既可以使用页面缓存也可以实时显示一些变化频率高的数据来。

3.集群与分布式

集群是每台服务器都具有相同的功能,处理请求时调用那台服务器都可以,主要起分流作用。

分布式是将不同的业务放到不同的服务器中,处理一个请求可能需要用到多台服务器,这样就可以提高一个请求的处理速度,而且集群和分布式也可以同时使用。

集群有两个方式:一种是在静态资源集群。另一种是应用程序集群。静态资源集群比较简单。应用程序集群在处理过程中最核心的问题就是Session 同步问题。

Session 同步有两种处理方式:一种是在Session 发生变化后自动同步到其他服务器,另一种就是用个程序统一管理Session。所有集群的服务器都使用同一个Session,Tomcat 默认使用就是第一种方式,通过简单的配置就可以实现,第二种方式可以使用专门的服务器安装Mencached等高效的缓存程序统一来管理session,然后再应用程序中通过重写Request并覆盖getSession 方法来获取制定服务器中的Session。

对于集群来说还有一个核心的问题就是负载均衡,也就是接收到一个请求后具体分配到那个服务器去处理的问题,这个问题可以通过软件处理也可以使用专门的硬件(如:F5)解决。

这里写图片描述

4. 反向代理

反向代理指的是客户端直接访问的服务器并不真正提供服务,它从别的服务器获取资源然后将结果返回给用户。

图:

这里写图片描述

4.1 反向代理服务器和代理服务器的区别

代理服务器的作用是代我门获取想要的资源然后将结果返回给我们,所要获取的资源是我门主动告诉代理服务器的,比如,我门想访问Facebook,但是直接访问不了,这时就可以让代理服务器访问,然后将结果返回给我们。

反向代理服务器是我门正常访问一台服务器的时候,服务器自己去调用了别的服务器资源并将结果返回给我们,我门自己并不知道。

代理服务器是我们主动使用的,是为我们服务的,他不需要有自己的域名;反向代理服务器是服务器自己试用的,我门并不知道,它有自己的域名,我门访问它和访问正常的网址没有任何区别。

反向代理服务器主要有三个作用:
1. 可以作为前端服务器跟实际处理请求的服务器集成;
2. 可以做负载均衡
3. 转发请求,比如说可以将不同类型的资源请求转发到不同的服务器去处理。

5. CDN

cdn其实是一种特殊的集群页面缓存服务器,他和普通集群的多台页面缓存服务器相比,主要是它存放的位置和分配请求的方式有点特殊。CDN 服务器是分布在全国各地的,当接收到用户请求后会将请求分配到最合适的CDN服务器节点获取数据。比如联通的用户分配到联通的节点,上海的用户分配到上海的节点。

CDN的每个节点其实就是一个页面缓存服务器,如果没有请求资源的缓存就会从主服务器获取,否则直接返回缓存的页面。

CDN分配请求(负载均衡)的方式是用专门的CDN域名解析服务器在解析域名的时候就分配好的。一般的做法是在ISP哪里试用CNAME将域名解析到一个特定的域名,然后再将解析到的那个域名用专门的CDN服务器解析道相应的CDN节点。如图。

这里写图片描述

第二步访问CDN的DNS服务器是应为CNAME记录的目标域名使用NS记录指向了CDN的DNS服务器。CDN的每个节点可能也是集群了多台服务器。

6. 底层的优化

前面说的所有都是架构都是建立在最前面介绍的基础结构之上的。很多地方都需要通过网络传输数据,如果可以加快网络传输的速度,那将会让整个系统得到改善。

7. 小结

网站架构的整个演变过程主要是围绕大数据和高并发这两个问题展开的,解决方案主要分为使用缓存和多资源两种类型。多资源主要指多存储(包括多内存)、多CPU和多网络,对于多资源来说又可以分为单个资源处理一个完整的请求和多个资源合作处理一个请求两种类型,如多存储和多CPU中的集群和分布式,多网络中的CDN和静态资源分离。理解了整个思路之后就抓住了架构演变的本质,而且自己可能还可以设计出更好的架构。

本文摘自《看透spring mvc 源代码分析与实战》 如感兴趣请购买原书。

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

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

相关文章

python diango_纯小白从零建简易网站|Python|Django

0、重装了云服务器系统 1、更新系统软件包yum update -y 2、安装软件管理包和可能使用的依赖 yum -y groupinstall "Development tools" yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel 3、下载Pyh…

404 not found nginx是什么意思_404到底是什么意思,网站设置有啥好处,怎么设置?...

在我们打开网站的时候,有时候会存在打不开的现象,而每一种打不开现象背后都有一个逻辑,例如数据库错误,例如页面不存在等现象,而404就是页面不存在返回到的一种页面,有些404页面会进行设置了自动跳转到首页…

php 随机在文章中添加锚文本_什么是锚文本,锚文本链接怎么做对SEO有好处?...

​SEO是一个由决定成败的工作,如果你想要试改善你的网站排名,我想每一名SEO人员在做优化的时候,都绕不开锚文本这个话题,如果你选择正确的锚文本,它会使你事半功倍,反之则是事倍功半。今天跟大家分享的主题…

用 ASP.NET 2.0 改进的 ViewState 加快网站速度

用 ASP.NET 2.0 改进的 ViewState 加快网站速度 发布日期: 2006-1-13|本文讨论:• ViewState 如何工作 • ASP.NET 2.0 ViewState 的改进 • 使用控件状态维护功能 • 性能考虑 本文使用以下技术:ASP.NET、C#代码下载:ViewState…

window location href 手机端无法跳转_【网站技术解析】 下载跳转,不同网站传参...

为了从66网站向88网站引流,增加两个网站权重,同时也方便我管理这么多整理的资源,我这里下载链接按钮,链接的资源都是跳转到88网站的,涉及到两个网站之间传参数,我这里直接在网址后面传递了参数,…

centos怎么用命令关机_怎么用Linux命令行测试网站连接速度

请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习1. 前言本文主要讲解如何使用Linux命令行测试网站连接速度。网站速度可以对用户体验有很大的影响,如果你是一个web开发人员,你当然希望开…

vue 直接访问静态图片_VuePress - Vue驱动的静态网站生成器

还在烦恼怎么做一个简单又美观的文档或博客网站吗?VuePress,让你十分钟就能搭建一个静态网站!Vue.js简介VuePress,是 vuejs 在 Github 上开源的静态网站生成器,项目仓库位于 https://github.com/vuejs/vuepress&#x…

IPGuard如何导入网站库

进控制台,点菜单分类管理-网站-操作-导入或导出网站,网站库下载地址: https://download.csdn.net/download/sznewcasecn/12151577 更多资料:http://www.newcase.com.cn/

rust全息要啥才能做_网站要怎么做推广才能有效果?

很多人建好了网站之后,都希望自己的网站能够给更多的人看到,因此都纷纷寻找可以推广网站的方法。其实网站推广的方法有很多,现在大致给大家介绍几种。一、利用评论推广找一些跟自己主题相关的博客、论坛去进行留言评论,引起大家对…

ip-guard分类管理网站分类如何导入

如何导入网站分类,导入后如下图:点分类-网站类别-操作菜单-导入网站库 网站分类下载地址

php matomo,Matomo4.2.1 发布,网站访问统计系统

Matomo 4.2.1 发布了。 Matomo 是一套基于 PHP5 MySQL 技术构建的开源网站访问统计系统,能够提供详细的统计信息,比如网页浏览人数、访问最多的页面、搜索引擎关键词等等流量分析功能。新的内容为了提高安全性,Matomo 用户界面创建的所有 coo…

灵动标签写php,帝国CMS灵动标签PHP代码完成标签无穷嵌套的结果_CMS体系建站教程...

关于熟习帝国CMS的朋侪多数晓得运用灵动标签举行特定信息的挪用,而灵动标签的壮大功用远非云云。灵动标签的PHP函数是:sys_ReturnEcmsLoopBq(栏目ID/专题ID,显现条数,操纵范例,只显现有标题图片,附加SQL前提,显现排序)采纳灵动标签的php代码可以在不支持…

html自动加载网址,网页自动刷新网站监控工具添加网址到网址列表的方法

有时候网站打开网页后,停留久了,内容就过时不能及时刷新信息,这时候使用一些网页自动刷新工具就能让网页自动刷新,随时监控和管理网站的网页内容,网页自动刷新监控工具就是这样的一款软件,今天小编将为大家…

香港云服务器网站打开缓慢,香港云服务器搭建的网站卡慢怎么办?火星直播

在香港云服务器上的网页访问卡慢该怎么办?网页访问卡慢有许多缘故,多次详细的 HTTP 恳求包含解析域名、创建 TCP 联接、进行恳求、香港云服务器接受到恳求开展解决并回到事件处理、电脑浏览器对 HTML 编码开展分析并恳求别的資源,及其对网页页…

IP-Guard网站分类初始化库如何导入

如何导入网站分类,导入后如下图:点分类-网站类别-操作菜单-导入网站库 网站分类下载地址:IP-GUARD网址库20171211.rar-网络安全文档类资源-CSDN下载

阿里开发的这个网站,让我写文章效率提高50%

前言 语雀是阿里开发的在线文档编辑与协同工具的网站,除了基础的文本格式:粗体、斜体、下划线、删除线、上标、下标、代码、颜色等,语雀还支持插入表格、思维导图、流程图、本地文件、优酷视频、高德地图等内容。所以无论是个人创作还是在团…

程序员之实用工具网站

1 搜索引擎 1.1秘迹搜索 一款无敌有良心、无敌安全的搜索引擎,不会收集私人信息,保护私隐,没有Cookie,并且秘迹搜索聚合了百度、360、Bing、搜狗等搜索结果。 网站:https://mijisou.com/ 1.2DogeDoge搜索 DogeDoge搜索,中文名多吉搜索,一个绝赞的民间高手开发的搜索…

程序员最爱的编程学习网站

序言: 经常有小白问:零基础适合学习编程吗?自学编程的学习资源应该去哪里找?...... 现如今,很大一部分人在学习编程的道路上都选择自学,但都苦于找不到适合自己的学习资源,今天为大家介绍一些免费自学编程的网站,为大家提供一些帮助: 1、CSDN 网站:https://www.cs…

小智一分钟带你搭建个人网站

前言: 这是小编在学习网页的时候,使用ISS配置服务器,写的一些总结,希望对大家有所帮助! 简介: 首先介绍一下ISS,ISS是Internet Information Services的缩写,意为互联网信息服务,是微软公司提供的基于运行Microsoft Windows的互联网基本服务。ISS是一种Web(网页)服…

R语言与回归分析网站流量案例

数据集概述 使用互联网排名前1000的网站的数据Rank:排名PagaViews:网站访问量UniqueVisitors:独立访问用户数HasAdvertising:是否有广告InEnglish:主要使用的语言是否为英语 分析过程 1. 安装ggplot2绘图包&#xff…