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

PHP-并发和大流量的解决方案

一个运营的系统在正式上线后将会遇到各种层级的高并发请求,因此我们必须对此做出相应的策略和技术解决方案,首先我们需要认清系统的高并发由3个层面导致: 1.传输层 大量用户对系统请求后,将会造成网络带宽和Web服...

一个运营的系统在正式上线后将会遇到各种层级的高并发请求,因此我们必须对此做出相应的策略和技术解决方案,首先我们需要认清系统的高并发由3个层面导致: 1.传输层 大量用户对系统请求后,将会造成网络带宽和Web服务器的I/O瓶颈。 2.计算层 接收大量用户请

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

使用在海量数据中的查询功能,采用列模式的存储方式将可以有效的提高系统查询效率。

–end–

原文地址:大型互联网站解决高并发的常见策略, 感谢原作者分享。

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

一个运营的系统在正式上线后将会遇到各种层级的高并发请求,因此我们必须对此做出相应的策略和技术解决方案,首先我们需要认清系统的高并发由3个层面导致: 1.传输层 大量用户对系统请求后,将会造成网络带宽和Web服...

mysql如何处理并发

mysql高并发的解决方法有:优化SQL语句,优化数据库字段,加缓存,分区表,读写分离以及垂直拆分,解耦模块,水平切分等。高并发大多的瓶颈在后台,在存储mysql的正常的优化方案如下:(1)代码中sql语句优...

php能处理并发吗?php并发解决方案

php在执行的过程中究竟是如何处理高并发问题的,接下来我们具体的来看一下关于PHP高并发的一个解决方案。先来看看php在服务器的执行过程:当用户请求服务器php文件的时候,服务器将对php文件进行语法分析,...

php如何处理抢购类功能的并发请求

在高并发请求下容易参数两个问题 1.数据出错,导致产品超卖。 2.频繁操作数据库,导致性能下降。本文主要和大家详细介绍了php处理抢购类功能的高并发请求,具有一定的参考价值,感兴趣的小伙伴们可以...

并发的处理

一、什么是高并发(高并发的一系列名词解释)QPS :每秒钟请求或查询的数量,在互联网领域,指每秒钟响应请求数(http请求)。吞吐量:单位时间内处理的请求数量。响应时间:从请求发出到...

网络直播开发过程中非常重要的一环

相信大家对高并发这个词并不陌生,现在有很多家科技公司在进行人才招聘时都会问到关于高并发的问题。其实高并发通常指通过设计保证系统能够同时并行处理很多请求,是网络直播开发过程中关于系统架构必须考虑的因素...

node单线程实现并发原理

本文主要和大家介绍node单线程实现高并发原理与node异步I/O ,具有一定的参考价值,有兴趣的可以了解一下,希望能帮助到大家。一、node单线程实现高并发原理众所周知nodejs是单线程且支持高并发的...

关于使用php 多线程处理并发的搜索请求的有关问题

关于使用php 多线程处理高并发的搜索请求的问题!我用php给android做后端,现在androdi有一个搜索功能,就是输入关键词进行搜索。我打算写两个方法来共同处理高并发搜索请求的情况,第一个方法接收手机POST过来的关键词并...

php处理抢购类并发请求实现详解

这次给大家带来php处理抢购类高并发请求实现详解,php处理抢购类高并发请求的注意事项有哪些,下面就是实战案例,一起来看一下。本文以抢购、秒杀为例。介绍如何在高并发状况下确保数据正确。 在高并发请求下...

php网站 并发时候如何优化

这篇文章介绍的内容是关于php网站 高并发时候如何优化,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下高并发解决方案案例:当QPS达到2000时优化方案: 做业务分离,分布式存储1.流量优化