如何应对高并发?

高并发要细化,那么则分为前端、中端、后端,我相信大家都会很疑惑为什么会有前中后不同的端,当然每一个人对高并发以及技术、架构等理解不一样,所以每一个人的定义也就不一样,毕竟这些都是理论上定义,只要是在实际业务场景中应用是正确的无论如何定义都是对的。

高并发的核心在于集群,通过集群提高处理能力,以下的都是基于集群的架构。

前端

前端主要就是对于页面的访问处理,目前一般的解决方案是使用Nginx,因为F5价格太贵了,所以这里就不多阐述。

Nginx可以通过前端的请求转发、对后端服务器进行代理、面对并发请求时,且是集群架构时进行负载均衡。

案例:前端页面使用HTML+CSS进行渲染,并使用Node.js进行编写简单的业务逻辑,如果有复杂的业务逻辑则请求后端服务器进行处理,那么前端则只需要关注页面的渲染,Nginx则只需要关注请求包的转发,对请求进行负载均衡的处理以及返回前端页面给请求方。

中端

我相信大家都会很疑惑,中端是指什么?

中端指的就是中间的那一层,也就是业务逻辑处理那一层,在面对大量的高并发请求处理,中端一般对常用的业务数据进行缓存,在缓存完了之后对大量的请求进行多线程分批处理。

中端的业务处理还包括了操作数据等一系列操作,这里的解决方案有很多,可以通过中间件、或Mongodb+Spark的SparkSQL组件来提高性能等……这些百度上一搜索就有很多就不多阐述了。

后端

这里所说的后端就是对于数据库的操作,在中端的数据时候就已经涉及到了大量的数据操作,但是面对如此之多的并发,数据库的性能会剧烈的下降,那么如何保证数据库的性能?
或者换个思路,如何快速获取到业务所需要的数据,或者存储业务产生的数据?

分库分表,这些老套路就不多说了。

找专人做专事,如ES搜索引擎是在搜索的时候是很快的,那么如果把ES当成一个缓存数据进行查找数据行不行?
     如Redis是一个缓存数据库,那么使用Redis存储数据,或者开多一个线程存储数据,或者使用Mongodb存储数据,在设定一个定时器到一定时间就进行同步到MySQL数据库中。

但是这里就涉及到一个同步问题,这个问题请持续关注此博客。

原文地址:https://www.cnblogs.com/-levi/p/11334401.html

时间: 2024-10-11 06:01:00

如何应对高并发?的相关文章

如何应对高并发 —— 动态网站静态化

零. 前言 为了应对高并发, 大多数网站在更新不频繁的页面都做了动态网页静态化处理. 典型的如: 淘宝的首页. 网易新闻的首页等. 当然这些网站加载速度这么快, 不仅仅是静态化, 还有 CDN. 缓存等各个方面的优化. 从阿里在 InfoQ 双十一架构的分享中提到使用 CDN + nginx + JBoss + 缓存作为 Detail 页面的架构, 将页面信息进行静态化缓存. 以上, 可以看出静态化技术的重要性及普遍性, 本文将结合具体实例介绍动态网站静态化. 一. 类及其依赖库  二. 代码实

Memcached笔记——(四)应对高并发攻击

近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源.他们的最好成绩,1秒钟可以并发6次,赶在Database入库前,Cache进行Missing Loading前,强占这其中十几毫秒的时间,进行恶意攻击. 相关链接: Memcached笔记——(一)安装&常规错误&监控Memcached笔记——(二)XMemcached&Spring集成 Memcached笔记——(三)Memcached使用总结  Memcached

Memcached笔记——(四)应对高并发攻击【转】

http://snowolf.iteye.com/blog/1677495 近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源.他们的最好成绩,1秒钟可以并发6次,赶在Database入库前,Cache进行Missing Loading前,强占这其中十几毫秒的时间,进行恶意攻击. 相关链接: Memcached笔记——(一)安装&常规错误&监控Memcached笔记——(二)XMemcached&Spring集成 Me

Linux下配置tomcat + apr + native应对高并发

在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,这时并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来. 一.Tomcat运行模式介绍 Tomcat 有三种(bio,nio.apr) 运行模式,首先来简单介绍下: (1)BIO    BIO(blocking I/O

HA架构关于应对高并发

前言:新项目上线,考验高并发,预选使用LR录制脚本跑脚本,考虑到搭建,使用简便的jmeter工具,       来跑500.1000.1500.2000的并发并打出报告,中间经历过tomcat与jmeter优化. 高并发下考虑的层面  系统  +  nginx(理论3W左右)  +  tomcat--- 标签(tcp) 实际操作: 1. 方案:2000个线程,采取并大(可以选择单个线程间隔),错误日志实时打印 当并发量达到1740时候,出现报错,报错日志在附件jmeter.txt. 此时服务器,

基于tomcat为了应对高并发模型实现webserver

在博客上,一个简单的AIOweb来样加工.查看AIO异步处理,依靠操作系统完成IO操作Proactor处理模型确实很强大,它可以实现高并发.高响应server一个很好的选择,但在tomcat中间connector理模型还依然是基于NIO的处理.当然,我觉得这可能会在以后的版本号进行改进,但还有一方面,我更觉得AIO的负载控制方面的处理可能是比較难的,由于AIO api并没有提供我们对分配线程组的处理.而仅仅是提供一个线程组,交给操作系统去解决io处理上的问题,所以,这可能会给须要复杂处理的负载均

(转)Linux下配置tomcat+apr+native应对高并发

摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待.但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,这时并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来. 一.三种运行模式介绍 Tomcat 有三种(bio,nio.apr) 运行模式,首先来简单介绍下 bio bio(blocking I/O),顾名思义,即

java中应对高并发的两种策略

目的:提高可用性 通过ExecutorService实现队列泄洪 //含有20个线程的线程池 private ExecutorService executorService = Executors.newFixedThreadPool(20); 将有并发压力的下游代码放入到线程池的submit方法中,如下: //同步调用线程池的submit方法 简单实现 拥塞窗口为20的队列泄洪(一个服务器同一时间只能处理20个请求,其他请求队列等待)Future<Object> future = execu

Memcached理解笔记4---应对高并发攻击

近半个月过得很痛苦,主要是产品上线后,引来无数机器用户恶意攻击,不停的刷新产品各个服务入口,制造垃圾数据,消耗资源.他们的最好成绩,1秒钟可以并发6次,赶在Database入库前,Cache进行Missing Loading前,强占这其中十几毫秒的时间,进行恶意攻击. 相关链接: Memcached笔记——(一)安装&常规错误&监控Memcached笔记——(二)XMemcached&Spring集成 Memcached笔记——(三)Memcached使用总结  Memcached