大型互联网站解决高并发的常见策略

news/2024/5/21 1:16:15/文章来源:https://blog.csdn.net/sunningzhen/article/details/7781871

本文转自:http://www.javabloger.com/article/high-concurrent-common-coping-strategies.html

一个运营的系统在正式上线后将会遇到各种层级的高并发请求,因此我们必须对此做出相应的策略和技术解决方案,首先我们需要认清系统的高并发由3个层面导致:

1. 传输层
大量用户对系统请求后,将会造成网络带宽和Web服务器的I/O瓶颈。

2. 计算层
接收大量用户请求进行计算,将会造成业务服务器和业务支撑服务器的瓶颈。

3. 存储层
传输层和计算层将会产生大量的数据,数据量暴增,将会导致数据库和储存上的瓶颈。

针对以上将会造成的系统高并发瓶颈,我们需要采用不同的技术手段解决。

从总体上来看
1.首先需要解决网络带宽和Web请求的高并发,需要合理的加大服务器和带宽的投入,并且需要充分的利用系统中软件、硬件的缓存机制,将能缓存的内容都进行缓存存储,减少计算层和存储层的压力。

2.其次需要对业务服务器和业务支撑服务器进行合理的分层,并且采用并行计算和分布式算法对大量计算进行处理,并且在开发的过程中需要采用Java SDK中并发包(Concurrency)进行编码实现。

3.存储层需要采用分布式文件服务器和列式的存储服务器进行构建,支撑海量数据的存放和读取,并且还要对关系型数据进行深层次的配置参数优化。

4.我们还需要清楚的认识到,将来根据系统运行的状态以及平台中不同的业务场景循序渐进的进行调整和优化。

对于大型系统来说,采用的技术是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求。在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:将会使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。
但是除了这几个方面,还没法根本解决面临的高负载和高并发问题,所以需要将计算和负载的压力分载到每个计算机上,使用不同的服务器集群机组进行分布式和并行计算,面对所产生的压力,下面这张图清晰的描述了,我们对系统中不同的计算瓶颈采用的不同解决手段,如图所示:

查看大图请点击这里
以下描述是针对不同层面产生的计算压力所采用的计算策略,清单如下:
传输层
1. CDN
网络链路出口进行压力分载,通过CDN让用户访问最近的数据缓存。
2. 智能双路
针对电信、网通 不同的访问用户访问请求,对应用户访问请求进行服务器带宽的智能切换。
3. LVS
对用户的请求进行压力分载,并且实现多种负载均衡的策略,也可以选择使用HA-Proxy实现。
4. HA-Proxy
针对Web服务器进行方向代理,通过HA-Proxy将用户的请求分发到不同的Web服务器上。
5. Long-Polling
在Web服务器上采用的一种策略,专门针对某个用户需要不断频繁的轮询访问。
6. Session2Cache
将用户的会话进行集中处理,存放在中央式的缓存服务器当中,减少服务器之间的会话通信
计算层
1. MapReduce
采用最经典的分布式算法对海量数据进行处理,将计算进行分载。
2. BSP
BSP(Bulk Synchronous Parallel-大型同步模型)算法是基于MPI算法的基础进行演化,运用在系统中并行计算的部分。
3. Result Cache
将计算的一部分结果进行缓存,缓解对存储层读取的请求。
4. Scatter/Gather
中间通过一个服务器进行中转,将大量的请求分发给内部的服务器进行计算,类似前端的web反向代理。
存储层
1. 读写分离
由于系统的读大于写的频率,数据库架构采用了1主/多从,双主多从的策略,所以我们将会将读和写进行分离,并且将大量的读请求分散给多台不同的(Slave)服务器。
2. 分区策略
系统采用不同的时间段作为分区的主要策略,提高对数据的读写性能。
3. Sharding
一台数据库将很快无法满足大量并发,需要使用库表散列,将数据库中的数据进行分散存储。
4. Column-Based
使用在海量数据中的查询功能,采用列模式的存储方式将可以有效的提高系统查询效率。

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

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

相关文章

大型互联网站解决海量数据的常见策略

本文转自:http://www.javabloger.com/article/big-data-architecture.html 大型互联网站的数据存储与传统存储环境相比不仅是一个服务器、一个数据库那么简单,而是由网络设备、存储设备、应用服务器、公用访问接口、应用程序 等多个部分组成的复杂系统。…

在IIS上部署ASPNETMVC Beta网站

在IIS上部署ASPNETMVC Beta网站 在IIS上部署ASPNETMVC Beta网站,实际上和在IIS上部署其他类型的网站并没有太大的区别。个人觉得唯一比较有意思的是在配置IIS时,我们可以配置各种自定义的ISAPI扩展名(也在MVC应用配置的,通常在Gl…

网页制作--苹果官方网站模仿

初入WEB前端设计第四天,我仿着做了一个网站,做的很垃圾,也没有一些约束(浏览器页面小时会显示错误) 成品图如下: 在这里我用了CSS字体 font awesome,不懂的可以去这篇博客:CSS图标…

初学盲打,免费,免安装,高颜值的在线打字练习网站

小时候不怎么接触电脑没有练习过打字,长大后深刻地意识到盲打对工作效率的提高,于是下决心学盲打。和大家一样,刚开始的时候四处搜寻办法,直到遇见了下面两个网站。 免费免安装,高颜值 练习打字的网站,均无…

分享一个打字练习网站

成为一个优秀的程序员,打字速度虽然不是必要条件。但是一个打字快的程序员,必然会享受自己的打字速度,速度快听着啪啪声实在是爽的不行。 Ratatype Ratatype 是一个在线的打字教程网站,能够帮助你提高键盘输入速度。 TYPING TUTO…

微信域名防屏蔽防封系统,轻松微信中域名网站被屏蔽被封的问题

做微信营销活动,域名没被封过,那你的营销人生肯定是不完整的。如果做到微信域名防封呢?这就要借助一些工具来实现有效的防封措施了。 第一步 你需要有一个微信域名检测接口,自己开发或是购买都可以。 第二步 配置你的程序&…

为什么中国免费学习网站那么少?都是收费的?

最近看到很多微信公众说不用钱,免费资料,但是到最后还是收钱,气人啊 ,一个学学习程序员的新手有没有钱,什么程序员免费资源等等公众号,最后找到一个良心公众号真的免费资料,就是资源有点少&…

关于IIS6.0配置网站打开出现空白问题解决方法

1)iis配置中默认文档未设置成【index.html】 如图 2)未把html交给.net托管 配置html给.net托管如下 1.打开IIS属性找到主目录选项卡 2.点击【配置】出现如下图 在其中ISAPI扩展中添加一条扩展名为【.html】的记录 其中可执行文件大多数都在【C:\WINDOWS\Microso…

第一次使用Python中的Django框架搭建网站学习路线总结

历时三个星期的零零散散时间,终于成功完成了数据库的综合实验---------一个小的网站。 第一次涉及Web开发领域,选择的是Python中的Django框架搭建的。本片博客用于学习路线的总结,方便日后快速回忆起来。如果你想要在短时间内搭建一个网站&a…

[转]2005年依始奥索推出综合网站排名搜狐傲立鸡群[1.3-1.9]

[转]2005年依始奥索推出综合网站排名搜狐傲立鸡群[1.3-1.9] 1. sohu.comwww.sohu.com - 信息 2. baidu.comwww.baidu.com - 信息 3. 3721.comwww.3721.com - 信息 4. 163.comwww.163.com - 信息 5. sina.com.cnwww.sina.com.cn - 信息 6. allyes.comwww.allyes.com - 信息 7. g…

phpcms v9网站搬家的方法(含域名更改)

PHPCMS V9内容管理系统 V9采用OOP(面向对象)方式自主开发的框架。框架易扩展,稳定且具有超强大负载能力,完全可以满足政府机构、教育机构、事业单位、商业企业、个人站长使用。 本文介绍phpcms v9网站搬家更换域名的方法&#xff…

关于python爬取笔趣阁网站上面完美世界小说

1这个是用BS爬下来的,其实是不难的,理解了就好,点击这里恩这本小说很不错的 2看下这个就是用正则表达式来提取的章节链接,不过这个是要前面加上前缀 3打开之后,我使用BS处理的,因为这个处理这个内容中间的…

python中用Beautifulsoup提取集搜客网站的信息

1爬取集搜客网站上面的信息点击打开链接 2看下这个源代码 3使用正则表达式提取出来 # coding:utf8 import urllib2 import time from bs4 import BeautifulSoup class YZW():#先是定义一个模块然后就是用来包含用到的函数def __init__(self):self.user_agentMozilla/5.0 (Wi…

利用压缩网页来提升网站浏览速度

级别: 中级 刘 冬 (javayougmail.com), 开发工程师,   2007 年 2 月 28 日 本文主要介绍如何通过对页面进行压缩从而节省网站的带宽以及提升用户的访问速度。 网站的访问速度是由多个因素所共同决定的,这些因素例如应用程序的响应速度、网络带宽、服…

网站多级缓存的分层架构

参考:大型网站多级缓存的分层架构 假设一个网站,需要提高性能,缓存可以放在浏览器,可以放在反向代理服务器,还可以放在应用程序进程内,同时可以放在分布式缓存系统中。 从用户请求数据到数据返回&#x…

网站中如何处理重复的代码

网站中如何处理重复的代码 作者:闪吧 类型:原创 来源:闪吧 style"PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 400px; PADDING-TOP: 0px; HEIGHT: 25px" src"teachInfo.aspx?id4051" frameborder&…

网站优化十大方法之关键字篇

1、 选择有效的关键字: 关键字是描述你的产品及服务的词语,选择适当的关键字是建立一个高排名网站的第一步。选择关键字的一个重要的技巧是选取那些常为人们在搜索时所用到的关键字。 2、 理解关键字: 在你收集所需的关键字之前,…

孩子上网抄作业 习题网站点击率高 ----回想当年....我们真是落伍了

孩子上网抄作业 习题网站点击率高 作者:王迪 | 2005-01-13 | 原始出处: 四川在线-华西都市报 昨日上午,家住成都的黄先生打进本报教育新闻热线(028-86969195)无奈地说:"在一些网站上,初中各科的课后习题的解题过程…

Java、JSP基于Web的小型购书网站

技术:Java、JSP等 摘要:俗话说活到老,学到老,当今社会正在快速的发展,人民生活的更加节奏化,大多数的人不再仅仅追求物质上的满足,而且还在追求精神方面的满足。由于在现实生活中,互…

【服务计算】REST API学习与设计——模仿GithubAPI设计博客网站API

文章目录 什么是REST?了解Web API学习Github-API设计博客网站API获取用户信息获得某用户所有文章总览访问用户的某一个指定的文章查看某用户关注信息获取用户下的分类专栏文章发布文章发布评论修改文章删除文章 错误处理404 Not Found400 Bad Request401 Unauthoriz…