前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何应对大流量、高并发??

如何应对大流量、高并发??

作者头像
民工哥
发布2020-09-16 17:31:04
1.7K0
发布2020-09-16 17:31:04
举报

所谓高并发指的是:在同时或极短时间内,有大量的请求到达服务端,每个请求都需要服务端耗费资源进行处理,并做出相应的反馈。

常用的高并发处理的思路与手段

从服务端视角看高并发

服务端处理请求需要耗费服务端的资源,比如能同时开启的进程数、能同时运行的线程数、网络连接数、cpu、I/O、内存等等,由于服务端资源是有限的,那么服务端能同时处理的请求也是有限的。高并发问题的本质就是:资源的有限性

高并发带来的问题

服务端的处理和响应会越来越慢,甚至会丢弃部分请求不予处理,更严重的会导致服务端崩溃。

高并发处理的基本思路

1)从客户端看
  • 尽量减少请求数量,比如:依靠客户端自身的缓存或处理能力
  • 尽量减少对服务端资源的不必要耗费,比如:重复使用某些资源,如连接池客户端处理的基本原则就是:能不访问服务端就不要访问
2)从服务端看
  • 增加资源供给,比如:更大的网络带宽,使用更高配置的服务器,使用高性能的Web服务器,使用高性能的数据库
  • 请求分流,比如:使用集群,分布式的系统架构
  • 应用优化,比如:使用更高效的编程语言,优化处理业务逻辑的算法,优化访问数据库的SQL

基本原则:分而治之,并提高单个请求的处理速度

高并发处理的基本手段

1)客户端发出请求层面,常见的手段有:
  • 尽量利用浏览器的缓存功能,减少访问服务端,比如:js、css、图片等
  • 可以考虑使用压缩传输的功能,减少网络流量,也会提高传输速度
  • 考虑使用异步请求,分批获取数据
2)前端接收客户端请求层面,常见的手段有:
  • 动静分离,部分静态资源可以直接从Nginx返回
  • 按请求的不同,分发到不同的后端进行处理,比如:负载均衡、业务拆分访问等
  • 前面再加上一层来做多个Nginx的负载均衡,比如:LVS、F5等
  • 还可以在更前面使用CDN服务
  • 还可以对动态内容进行缓存,尽量减少访问后端服务
3)Web服务器层面,常见的手段有:
  • 使用最新的JVM,并进行配置优化
  • 对Web服务器进行配置优化,比如:调整内存数量、线程数量等
  • 提供多个能提供相同服务的Web服务器,以实现负载均衡
  • 仔细规划Web服务器上部署的应用规模
  • 对Web服务器进行集群
4)Web应用层面,常见的手段有:
  • 动态内容静态化
  • Java开发优化
  • 优化处理业务逻辑的算法
  • 合理高效的利用缓存
  • 优化访问数据库的Sql,可以考虑利用存储过程等数据库的能力
  • 合理使用多线程,加快业务处理
  • 部分业务可以考虑内存数据库,或者是进行纯内存处理
  • 尽量避免远程调用、大量I/O等耗时的操作
  • 合理规划事务等较为耗资源的操作
  • 合理使用异步处理
  • 对部分业务考虑采用预处理或者预计算的方式,减少实时计算量
  • 内部系统间的业务尽量直接调用、直接处理,减少WebService、工作流等
5)数据库层面,常见的手段有:
  • 合理选择数据库的引擎,比如Mysql的InnoDB与MyISAM引擎
  • 进行配置优化
  • 可以考虑使用存储过程来处理复杂的数据逻辑
  • 数据库集群,进行读写分离
  • 合理设计数据库的表结构、索引等
  • 分库、分表,降低单库、单表的数据量
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 民工哥技术之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 常用的高并发处理的思路与手段
    • 从服务端视角看高并发
      • 高并发带来的问题
      • 高并发处理的基本思路
        • 2)从服务端看
        • 高并发处理的基本手段
          • 1)客户端发出请求层面,常见的手段有:
            • 5)数据库层面,常见的手段有:
            相关产品与服务
            数据库
            云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档