范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

SpringBoot可以同时处理多少请求?

  前两天面试的时候,面试官问我:一个ip发请求过来,是一个ip对应一个线程吗?我突然愣住了,对于SpringBoot如何处理请求好像从来没仔细思考过,所以面试结束后就仔细研究了一番,现在就来探讨一下这个问题。正文
  我们都知道,SpringBoot默认的内嵌容器是Tomcat,也就是我们的程序实际上是运行在Tomcat里的。所以与其说SpringBoot可以处理多少请求,到不如说Tomcat可以处理多少请求。
  关于Tomcat的默认配置,都在spring-configuration-metadata.json文件中,对应的配置类则是org.springframework.boot.autoconfigure.web.ServerProperties。
  和处理请求数量相关的参数有四个:
  server.tomcat.threads.min-spare:最少的工作线程数,默认大小是10。该参数相当于长期工,如果并发请求的数量达不到10,就会依次使用这几个线程去处理请求。server.tomcat.threads.max:最多的工作线程数,默认大小是200。该参数相当于临时工,如果并发请求的数量在10到200之间,就会使用这些临时工线程进行处理。server.tomcat.max-connections:最大连接数,默认大小是8192。表示Tomcat可以处理的最大请求数量,超过8192的请求就会被放入到等待队列。server.tomcat.accept-count:等待队列的长度,默认大小是100。
  举个例子说明一下这几个参数之间的关系:
  如果把Tomcat比作一家饭店的话,那么一个请求其实就相当于一位客人。min-spare就是厨师(长期工);max是厨师总数(长期工+临时工);max-connections就是饭店里的座位数量;accept-count是门口小板凳的数量。来的客人优先坐到饭店里面,然后厨师开始忙活,如果长期工可以干的完,就让长期工干,如果长期工干不完,就再让临时工干。图中画的厨师一共15人,饭店里有30个座位,也就是说,如果现在来了20个客人,那么就会有5个人先在饭店里等着。如果现在来了35个人,饭店里坐不下,就会让5个人先到门口坐一下。如果来了50个人,那么饭店座位+门口小板凳一共40个,所以就会有10人离开。
  也就是说,SpringBoot同时所能处理的最大请求数量是max-connections+accept-count,超过该数量的请求直接就会被丢掉。
  纸上得来终觉浅,绝知此事要躬行。
  上面只是理论结果,现在通过一个实际的小例子来演示一下到底是不是这样:
  创建一个SpringBoot的项目,在application.yml里配置一下这几个参数,因为默认的数量太大,不好测试,所以配小一点: server:    tomcat:      threads:        # 最少线程数        min-spare: 10        # 最多线程数        max: 15      # 最大连接数      max-connections: 30      # 最大等待数      accept-count: 10
  再来写一个简单的接口:     @GetMapping("/test")      public Response test1(HttpServletRequest request) throws Exception {          log.info("ip:{},线程:{}", request.getRemoteAddr(), Thread.currentThread().getName());          Thread.sleep(500);          return Response.buildSuccess();      }
  代码很简单,只是打印了一下线程名,然后休眠0.5秒,这样肯定会导致部分请求处理一次性处理不了而进入到等待队列。
  然后我用Apifox创建了一个测试用例,去模拟100个请求:
  观察一下测试结果:
  从结果中可以看出,由于设置的 max-connections+accept-count 的和是40,所以有60个请求会被丢弃,这和我们的预期是相符的。由于最大线程是15,也就是有25个请求会先等待,等前15个处理完了再处理15个,最后在处理10个,也就是将40个请求分成了15,15,10这样三批进行处理。
  再从控制台的打印日志可以看到,线程的最大编号是15,这也印证了前面的想法。
  总结一下:如果并发请求数量低于server.tomcat.threads.max,则会被立即处理,超过的部分会先进行等待,如果数量超过max-connections与accept-count之和,则多余的部分则会被直接丢弃。延伸:并发问题是如何产生的
  到目前为止,就已经搞明白了SpringBoot可以同时处理多少请求的问题。但是在这里我还想基于上面的例子再延伸一下,就是为什么并发场景下会出现一些值和我们预期的不一样?
  设想有以下场景:厨师们用一个账本记录一共做了多少道菜,每个厨师做完菜都记录一下,每次记录都是将账本上的数字先抄到草稿纸上,计算x+1等于多少,然后将计算的结果写回到账本上。
  Spring容器中的Bean默认是单例的,也就是说,处理请求的Controller、Service实例就只有一份。在并发场景下,将cookSum定义为全局变量,是所有线程共享的,当一个线程读到了cookSum=20,然后计算,写回前另一个线程也读到是20,两个线程都加1后写回,最终cookSum就变成了21,但是实际上应该是22,因为加了两次。 private int cookSum = 0;    @GetMapping("/test")  public Response test1(HttpServletRequest request) throws Exception {      // 做菜…      cookSum += 1;      log.info("做了{}道菜", cookSum);      Thread.sleep(500);      return Response.buildSuccess();  }
  如果要避免这样的情况发生,就涉及到加锁的问题了,就不在这里讨论了。

我的顺转刨经历晚上躺着睡不着,突然想着记录下我生我闺女时顺产转剖腹产的经历,希望对马上要生产的姐妹们有所帮助吧。文笔不好,简单回忆记录下,多年以后看看也是一种回忆吧。我生我闺女那年是13年,我是国家图书馆首次发布2023年四季童读书单权威推荐27种优秀童书四季童读2023年春季推荐书单学前阶段(06岁)书目国家图书馆少年儿童馆供图中新网北京2月10日电(记者应妮)国家图书馆日前首次发布2023年四季童读书单,旨在为我国少年儿童读者提家长们注意了!这款网红玩具千万要当心!来源上海应急守护2月2日晚11点40分左右四川省广安市广安区广福街仁和花园发生一起室内居民住宅火灾事故火灾致4人死亡3人受伤据邻居介绍,发生火灾为401室,住户一家七口人。消防来的孩子发笑也是病?要当心这种瘤!近日,有报道称一名7岁女孩无故发笑一年,去医院最终查出患有下丘脑错构瘤这种疾病。来源丨新闻截图无独有偶,一名12岁的女孩2017年入院,同时被诊断为患有下丘脑错构瘤,症状主要以发笑原子之心首发主机版不支持光追主线25小时即将于2月21日发售的FPS游戏原子之心,PC版支持最新技术,比如DLSS3和光追反射环境光遮蔽阴影和全局照明。然而主机版是另外一番情形。在接受外媒采访时,Mundfish创始人兼热血传奇黑暗光年造化BOSS有哪些造化BOSS掉落什么好奖励在黑暗光年游戏里,BOSS的类型多种多样,而随着我们的转生等级提升,或开服天数的递增,大家后续还能接触到更强更具挑战性的BOSS,好譬如造化BOSS,就是其中一种哦。那么黑暗光年造热血传奇大家好,我是专注热血传奇的锤子。新年玩新服,今天找到一个据说是1。76冷漠结合的版本,现在就进服试试看。古怪的沃玛装备前期刷声望还是比较轻快的,玩了一会草雕就升到了35级,送了一整墨鱼汁能不能吃?乌贼又称墨鱼。墨鱼汁能吃!但必须在烹饪成熟以后才可以吃,不建议生吃,以免其中携带的寄生虫细菌等物质进入人体,威胁健康。黑黑的墨鱼汁墨鱼汁是墨鱼墨囊中的黑色液体,通常在墨鱼感受到危险男人到中年感到力不从心?建议做到5个细节,找回年轻活力态都说人到中年是非多,所说的是非,对于男性而言就是中年危机。除了性情方面发生一定变化,行为习惯受到影响之外,更多的是做很多事都力不从心,没有年轻时的活力满满,只有生理和心理双重压力导进企业察实情送服务!财鑫集团金融服务进园区走进汉寿走进企业了解企业生产状况。现场沟通交流。红网时刻常德2月10日讯(通讯员赵侗芳徐慧娟)为深化金融扶持措施,纾困解难助企发展,财鑫集团金融服务进园区第四站走进汉寿,此次金融服务之行共香港三成首期按揭政策三十年不变!严重妨碍楼市健康发展和置业文姚洁凝根据香港地产史的记载,香港的楼市在早于五六十年代,因地产商发明了分层出售分期付款,自此以后香港便有炒楼风气的出现。1980年代初,香港地产市道曾经大崩溃,当时崩溃的主因是地
农村大集5块一斤的酒到底能喝吗?行家喝之前认准3点再喝最近有一些自酿酒又开始出现在了大家的视野中,听起来好像自酿酒在我国有着很久的历史了,在农村的大集上只卖5块钱一斤,这真的是非常吸引人的了。不过这样的白酒真的可信吗?咱们现在的社会物宁夏银川小葡萄撬动大产业立足资源禀赋,宁夏银川市以小葡萄撬动大产业。贺兰山是世界公认的酿酒葡萄种植黄金地带,近10年来已先后有中国知名酒庄王朝张裕长城及国际著名的葡萄酒生产商保乐力加轩尼诗相继落户,葡萄酒端信有礼兖州区第五届油菜花节将于4月1日开启3月23日上午,济宁市政府新闻办组织召开新闻发布会,介绍兖州区牛楼田园综合体项目建设经验做法,以及兖州区第五届油菜花节暨乡村好时节Lets购,端信兖州霓裳九州文化节有关情况,并回答再出发专列游文羊城晚报全媒体记者刘星彤图旅行社提供(除署名外)赏花作为春日永恒不变的流行主题,在2023年不仅带动了各地旺盛的赏花经济,也让更多人在这个春天以赏花之名,奔赴更远的地方,开启一场清淡爽口家常菜,有助于老年人血糖控制糖尿病患者需忌口,有些东西可以多吃,有些东西则必须少量。营养师表示,糖尿病患者家属可以准备清淡爽口家常菜,如香菜竹笋汤所含蔬菜类配料珊瑚草等都富含纤维质,可望延缓血糖上升,营养师建五种绝对应该经常吃的蔬菜,你知道?众所周知,无论你是否有特殊的饮食计划,吃蔬菜对你的健康至关重要。蔬菜富含维生素矿物质水等,是一切的基础。然而,选择哪种蔬菜最好吃是一项艰巨的挑战。蔬菜可能是你能给身体的最好的食物,香到舔碗!这9种超美味的家常拌饭,懒人也能轻松上手!不想炒一桌菜,又想吃得好?让懒人拌饭来拯救你!今天教您9种家常拌饭的做法,一碗里饭菜肉都有,搭配均衡还简单!双椒荷包蛋拌饭食材米饭青红线椒或小米辣鸡蛋蒜生抽陈醋蚝油白糖做法1将青红蔡英文将离台,美提中国收台时间点,中国绝不承诺放弃动武美国继续在属于中国内政以及中国核心利益的台湾问题上指手画脚,当地时间周三,美国国务卿安东尼布林肯宣称自己同意美国情报机构的评估,即所谓的中国人民解放军(PLA)将有能力在2027年苏州吴江区的快递是怎么了,为什么还没恢复今年开年过来就注意到了一个问题,吴江区的快递打不出来,问快递那边发的停发表显示停业整顿,时至今日还未处理完?后来尝试邮政和顺丰是可以发出的,说明这个老板真的是一家经营了三通一达,垄3月热浪来袭!澳媒悉尼可能迎165年以来3月最高平均温度纪录环球时报综合报道悉尼3月或创高温新纪录。澳大利亚广播公司(ABC)18日报道称,根据近165年的数据,悉尼今年3月的平均温度已经比2006年创下的27。1度纪录高出2度。按照这个趋久疏战阵太激动,郑钦文迈阿密首战赢得不轻松郑钦文表示,身体尚没有100康复。图视觉中国新京报讯(首席记者孙海光)3月24日晨结束的WTA(国际女子网球协会)1000迈阿密赛第2轮中,郑钦文2比1逆转贝古,下一轮将迎战老对手