+
 新版

springMVC是怎么抗住高并发得呢?

NaviaJin 发布于 2020/11/09 13:53
阅读 2K+
收藏 1

一直有个疑问,当数以千计/万计的访问同时访问一个controller里的路由地址时,能承载的访问量是多大?springmvc又是怎么解决(并发方面)这些访问的呢?

加载中
3
osc_4213422
osc_4213422

你可能对技术理解的不清晰。支持高并发和springmvc关系不大,可以说tomcat容器本身是一个多线程的环境,很多线程在工作,每个请求到springmvc都启用一个线程去执行。所以重点是你能支持多少个线程,另外单个线程要尽快处理完,避免排队。这个才是高并发的关键。所以有了负载均衡(提高单机线程数),cache(提高执行速度)

4
smallcatooo
smallcatooo

springmvc调用的是servlet,servlet调用的是tomcat,最终并发问题还是tomcat来处理的

osc_42369868
osc_42369868
请问,写个个小测试,就是给成员变量赋值,然后sleep一下输出。连续请求两次传不一样的参数,结果都是第二次请求的。写servlet,mvc,boot放tomcat下或者eclipse,idea启动都是这样的。都是额外配置线程池才能行。这个是什么原因呢?
1
炎黄伙哥
炎黄伙哥

感觉问的有点驴唇不对马嘴(这里不是贬义),spring mvc是个功能框架,不是spring mvc要考虑的吧,要看你容器调优,架构调优这些来解决

0
y
yoyo3287258
我觉得吧,可以通过负载均衡解决
0
不学无数的程序员

可以了解一下 Tomcat 的 BIO 和 NIO模式,NIO 模式可以抗住高并发

0
盐焗小星球
盐焗小星球

引用来自“smallcatooo”的评论

springmvc调用的是servlet,servlet调用的是tomcat,最终并发问题还是tomcat来处理的

0
猫爪无情
猫爪无情

在java中,http请求的标准就是servlet接口,而servlet容器管理着所有的请求,springMVC属于业务框架,实现了servlet接口,以及业务逻辑,所以是servlet容器处理了并发,tomcat、jboos、Tomcat、Jetty、WebLogic、Websphere、JBoss这些web服务器都有servlet容器,能够处理http协议的请求。

0
nimagugu
nimagugu

当数以千计/万计的访问同时访问一个controller里的路由地址时,能承载的访问量是多大?

通用处理准则

1、判断某个请求经过了哪些节点处理,是否存在 Onm的节点,提前调优

2、某个请求访问的或更新的 数据量有多大,提前调优

系统完成后,开始测试,根据 产品预估,灌入 几亿、几十亿的数据,从单机开始,不断的压测,观测数据,调优,周而复始,达到外网平均100ms 后,然后发布上线

 

springmvc又是怎么解决(并发方面)这些访问的呢?

通用处理

1、增加缓存

2、集群处理

3、分布式事务+补偿

4、购买量子计算机

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部