美文网首页
高并发请求

高并发请求

作者: gyDBD | 来源:发表于2018-04-21 09:50 被阅读0次

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

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

相关文章

  • 高并发请求

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

  • php+redis 秒杀系统设计

    秒杀问题: 高并发 恶意请求和无效请求 超卖 数据库压力 链接暴露 一、高并发解决方法 用Nginx负载均衡,还可...

  • 啃透这500页高并发笔记薪资涨了20K,并连收腾讯美团等5个Of

    我们知道,高并发是指运用设计手段让系统能够处理更多的用户并发请求,也就是承担更大的流量。高并发代表着大流量,高并发...

  • 500页高并发笔记,吃透还怕薪资不涨么!我已连收天猫,京东等5个

    我们知道,高并发是指运用设计手段让系统能够处理更多的用户并发请求,也就是承担更大的流量。高并发代表着大流量,高并发...

  • async 和 await

    这段时间一直在重构项目,遇见很多请求“高并发”,因为涉及到多个请求又或者多个连续请求。之所以给高并发带上引号,因为...

  • 限流、熔断、降级

    一、限流、熔断、降级概念 1.1 限流: 在高并发系统中一定要用,高并发的所有请求进来,不是让每个请求都打到后台集...

  • 高并发下缓存击穿(一)

    首先厘清这样几个概念:高并发、缓存、击穿 高并发 高并发很好理解,它指的是服务在同一时刻被大量请求访问,举个例子,...

  • 消息队列在项目中的使用

    背景:在分布式系统中是如何处理高并发的。 由于在高并发的环境下,来不及同步处理用户发送的请求,则会导致请求发生阻塞...

  • 到底多大才算高并发?

    一、什么是高并发 定义: 高并发(High Concurrency)是使用技术手段使系统可以并行处理很多请求。 关...

  • 如何设计一个高并发系统

    什么是高并发 高并发(High Concurrency)是指通过设计保证系统能够同时并行处理很多请求。 常用指标有...

网友评论

      本文标题:高并发请求

      本文链接:https://www.haomeiwen.com/subject/qugtlftx.html