精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

SpringBoot3虛擬線程 & 反應(yīng)式(WebFlux) & 傳統(tǒng)Tomcat線程池性能對(duì)比

開(kāi)發(fā) 前端
啟用虛擬線程后,applicationTaskExecutor Bean 將成為配置為使用虛擬線程的 SimpleAsyncTaskExecutor。任何使用應(yīng)用程序任務(wù)執(zhí)行器的地方,如調(diào)用 @Async 方法時(shí)的 @EnableAsync、Spring MVC 的異步請(qǐng)求處理和 Spring WebFlux 的阻塞執(zhí)行支持,現(xiàn)在都將使用虛擬線程。

環(huán)境:SpringBoot3.2.1 + JDK21

1. 簡(jiǎn)介

從Spring Boot 3.2 支持虛擬線程。要使用虛擬線程,需要在 Java 21 上運(yùn)行,并將屬性 spring.threads.virtual.enabled 設(shè)置為 true。

啟用虛擬線程后,Tomcat 和 Jetty 將使用虛擬線程處理請(qǐng)求。這意味著處理網(wǎng)絡(luò)請(qǐng)求的應(yīng)用程序代碼(如控制器中的方法)將在虛擬線程上運(yùn)行。

啟用虛擬線程后,applicationTaskExecutor Bean 將成為配置為使用虛擬線程的 SimpleAsyncTaskExecutor。任何使用應(yīng)用程序任務(wù)執(zhí)行器的地方,如調(diào)用 @Async 方法時(shí)的 @EnableAsync、Spring MVC 的異步請(qǐng)求處理和 Spring WebFlux 的阻塞執(zhí)行支持,現(xiàn)在都將使用虛擬線程。

接下來(lái)將分別通過(guò)傳統(tǒng)阻塞Servlet技術(shù)、使用虛擬線程及使用反應(yīng)式技術(shù)WebFlux來(lái)分別對(duì)比它們的性能。

2. 性能對(duì)比

使用虛擬線程 & 傳統(tǒng)Servlet都使用下面的接口:

@RestController
@RequestMapping("/task/default")
public class TaskDefaultController {


  @GetMapping("")
  public Object index() throws Exception {
    System.out.printf("before - %s%n", Thread.currentThread()) ;
    TimeUnit.MILLISECONDS.sleep(100) ;
    System.out.printf("after - %s%n", Thread.currentThread()) ;
    return "task - default..." ;
  }
}

先測(cè)試下啟用虛擬線程執(zhí)行情況。

配置:

spring:
  threads:
    virtual:
      enabled: true

控制臺(tái)輸出:

before - VirtualThread[#42,tomcat-handler-0]/runnable@ForkJoinPool-1-worker-1
after - VirtualThread[#42,tomcat-handler-0]/runnable@ForkJoinPool-1-worker-1

使用的是虛擬線程。

2.1 傳統(tǒng)Tomcat線程池方式

配置線程池,如果不配置使用默認(rèn)的最大線程200,整體的吞吐量將在2200作用。

server:
  tomcat:
    threads:
      min-spare: 500
      max: 1000

初始啟動(dòng)服務(wù)后,內(nèi)存,CPU占用情況;默認(rèn)啟動(dòng)后線程個(gè)數(shù)與上面配置一致。

圖片圖片

使用jmeter測(cè)試,配置如下:

圖片圖片

使用500個(gè)線程,循環(huán)200次,整體做100000次壓測(cè)。后續(xù)的測(cè)試都會(huì)基于該配置進(jìn)行。

圖片圖片

吞吐量為:4696

內(nèi)存,CPU占用情況

圖片圖片

2.2 使用虛擬線程

首先開(kāi)啟虛擬線程

spring:
  threads:
    virtual:
      enabled: true

初始啟動(dòng)服務(wù)后,內(nèi)存,CPU占用情況

圖片圖片

jmeter測(cè)試情況如下:

圖片圖片

吞吐量為:4677,與上面的阻塞Servlet基本差不多。但傳統(tǒng)Tomcat線程池方式需要更多的線程才能達(dá)到這一值。

圖片圖片

整個(gè)過(guò)程內(nèi)存使用情況,虛擬線程要比傳統(tǒng)Tomcat線程池方式占用的多。

JDK 的虛擬線程調(diào)度器是一個(gè)工作偷取 ForkJoinPool,以先進(jìn)先出(FIFO)模式運(yùn)行。調(diào)度器的并行性是指可用來(lái)調(diào)度虛擬線程的平臺(tái)線程數(shù)。默認(rèn)情況下,它等于可用處理器的數(shù)量,但可以通過(guò)系統(tǒng)屬性 jdk.virtualThreadScheduler.parallelism 進(jìn)行調(diào)整。ForkJoinPool 與普通池不同,普通池用于并行流的實(shí)現(xiàn),并以后進(jìn)先出模式運(yùn)行。

調(diào)整數(shù)量再進(jìn)行測(cè)試,設(shè)置JVM參數(shù)

-Djdk.virtualThreadScheduler.parallelism=100 -Djdk.virtualThreadScheduler.maxPoolSize=100

設(shè)置100個(gè)平臺(tái)線程來(lái)調(diào)用虛擬線程。

啟動(dòng)服務(wù)后,線程,內(nèi)存使用情況。

圖片圖片

jmeter測(cè)試結(jié)果如下:

圖片圖片

與調(diào)整前沒(méi)什么區(qū)別,反而是增加了應(yīng)用的線程數(shù)量。

2.3 反應(yīng)式WebFlux

引入依賴(lài)

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>

基于webflux,我們需要重新編寫(xiě)接口測(cè)試。

@RestController
@RequestMapping("/task/reactor")
public class ReactorController {


  @GetMapping("")
  public Object index() throws Exception {
    // 與上面2種方式不同,reactor方式則需要使用delayElement方式來(lái)模擬耗時(shí)任務(wù)
    return Mono.just("task - reactor...").delayElement(Duration.ofMillis(100)) ;
  }
}

初始啟動(dòng)服務(wù)后,內(nèi)存,CPU占用情況。

圖片圖片

jmeter測(cè)試情況如下:

圖片圖片

吞吐量為:4659,與上面的測(cè)試結(jié)果基本一致。

圖片圖片

內(nèi)存使用情況要比前面幾種方式占用都少。同時(shí)通過(guò)jmeter測(cè)試結(jié)果也能發(fā)現(xiàn),MAX請(qǐng)求的最大響應(yīng)時(shí)間webflux是最小的,Std.Dev:所有請(qǐng)求響應(yīng)時(shí)間的標(biāo)準(zhǔn)差也是最小的(該值越小,平均值越可靠)。

根據(jù)測(cè)試結(jié)果,虛擬線程與webflux誰(shuí)更勝一籌還不夠清晰,接下來(lái)我們結(jié)合數(shù)據(jù)庫(kù)操作進(jìn)行測(cè)試。

3. 基于數(shù)據(jù)庫(kù)測(cè)試

數(shù)據(jù)庫(kù)數(shù)據(jù)準(zhǔn)備了600w的數(shù)據(jù)。

圖片圖片

3.1 傳統(tǒng)Tomcat線程池方式

基于JPA進(jìn)行數(shù)據(jù)庫(kù)的操作

@Entity
@Table(name = "t_user")
public class User {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Integer uid ;
  private String name ;
}

Repository接口

public interface UserRepository extends JpaRepository<User, Integer> {
}

Controller測(cè)試接口

@RestController
@RequestMapping("/users")
public class UserController {


  @Resource
  private UserRepository ur ;
  
  @GetMapping("/count")
  public User count() {
    return ur.findById(5800000).orElse(null) ;
  }
  
}

測(cè)試結(jié)果:

圖片圖片

3.2 使用虛擬線程

記得開(kāi)啟虛擬線程,測(cè)試結(jié)果如下:

圖片圖片

3.3 反應(yīng)式WebFlux

需要引入如下依賴(lài)

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<dependency>
  <groupId>com.github.jasync-sql</groupId>
  <artifactId>jasync-r2dbc-mysql</artifactId>
  <version>2.1.24</version>
</dependency>

配置

spring:
  r2dbc:
    url: r2dbc:mysql://localhost:3306/batch?serverZnotallow=GMT%2B8&sslMode=DISABLED
    username: root
    password: xxxooo
    pool:
      initialSize: 100
      maxSize: 100
      max-acquire-time: 30s 
      max-idle-time: 30m

實(shí)體定義,這里的注解與jpa不一樣

@Table("t_user")
public class User {
  
  @Id
  private Integer uid ;
  private String name ;
}

Repository定義

public interface UserR2DBCRepository extends ReactiveCrudRepository<User, Integer> {
}

Controller接口

@RestController
@RequestMapping("/r2dbc")
public class UserR2DBCController {


  @Resource
  private UserR2DBCRepository ur ;
  
  @GetMapping("/users")
  public Mono<User> count() {
    return ur.findById(5800000)  ;
  }
  
}

測(cè)試結(jié)果

圖片圖片

根據(jù)測(cè)試結(jié)果來(lái),webflux的整體性能遠(yuǎn)遠(yuǎn)高于虛擬線程及傳統(tǒng)tomcat線程池的方式。

以上是本篇文章全部?jī)?nèi)容,希望對(duì)你有幫助。

完畢!?。?/p>

責(zé)任編輯:武曉燕 來(lái)源: Spring全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2022-03-29 07:32:38

R2DBC數(shù)據(jù)庫(kù)反應(yīng)式

2024-05-10 08:10:05

Spring虛擬線程JDK

2024-01-10 09:59:19

虛擬線程信息

2025-07-07 02:33:00

2024-10-07 08:40:56

Spring應(yīng)用程序Java

2021-01-28 11:17:49

Python爬蟲(chóng)單線程

2023-10-13 08:20:02

Spring線程池id

2023-09-21 08:01:27

SpringR2DBC實(shí)現(xiàn)數(shù)據(jù)庫(kù)

2019-12-27 09:09:42

Tomcat線程池JDK

2022-08-15 09:00:00

JavaScript前端架構(gòu)

2023-11-27 00:46:39

裸機(jī)虛擬機(jī)

2024-10-06 14:37:52

2021-06-17 06:57:10

SpringBoot線程池設(shè)置

2014-06-05 10:22:06

Tomcat 7

2021-08-20 08:22:12

Tomcat原生線程池

2025-07-07 04:22:00

2021-12-05 23:37:21

Java9異步編程

2023-08-07 14:28:07

SpringBoot工具

2023-11-06 18:37:23

虛擬線程編寫(xiě)

2013-11-08 10:59:17

Hadoop虛擬化VMware vSph
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

一本色道**综合亚洲精品蜜桃冫 | 免费日韩中文字幕| 日本中文字幕电影在线观看 | 亚洲精品成人| 欧美成人女星排行榜| 日本www在线视频| 国产不卡一二三| aaaaaaaa毛片| 91av久久| 国产精品免费看片| 国产精品一区二区三区精品| 日韩中文字幕高清| 激情综合激情| 日韩中文字幕国产| 亚洲一区二区在线免费| 欧美成人三级| 亚洲高清在线精品| 一区二区精品国产| 牛牛影视精品影视| 国产999精品久久| 国产精品美女主播| 日韩免费av片| 中文字幕午夜精品一区二区三区 | 成人乱人伦精品视频在线观看| 国语对白一区二区| 亚洲欧洲美洲一区二区三区| 亚洲色图av在线| 色悠悠在线视频| 中文成人在线| 欧美性感一区二区三区| 日韩a∨精品日韩在线观看| 韩国av网站在线| 国产日韩欧美一区二区三区乱码 | 伊人影院久久| 久久久国产精品视频| 亚洲码无人客一区二区三区| 欧美久久一区二区三区| 欧美日韩一区二区三区高清| 久久久免费视频网站| а√天堂中文资源在线bt| 亚洲另类在线一区| 福利网在线观看| 日本中文字幕伦在线观看| 2022国产精品视频| 玛丽玛丽电影原版免费观看1977| 亚洲精品久久久狠狠狠爱 | 91传媒视频免费| 亚洲系列在线观看| 美女视频网站久久| 国产精品色婷婷视频| 国产亚洲久一区二区| 久久人人精品| 国产精品久久久久久久久久久久久| 亚洲黄色小说图片| 午夜亚洲影视| 日韩av三级在线观看| 精品欧美一区二区三区免费观看 | 青青操视频在线| www国产亚洲精品久久麻豆| 久久久av水蜜桃| 日本护士...精品国| 久久久亚洲国产美女国产盗摄 | 在线精品国产| 欧美激情视频网| 久久免费少妇高潮99精品| 欧美色综合网| 韩国国内大量揄拍精品视频| 国产 欧美 日韩 在线| 亚洲一区二区三区高清| 日韩av电影手机在线| 亚洲中文字幕无码爆乳av| 日本aⅴ亚洲精品中文乱码| 国产精品美女久久久免费 | 依依综合在线| 在线观看一区二区精品视频| 亚洲国产日韩欧美在线观看| 99久久这里有精品| 欧美videos中文字幕| 国产精品无码一区二区三| 免费av一区| 日韩视频免费在线观看| 久久精品这里只有精品| 亚洲全部视频| 国产精品私拍pans大尺度在线| av网站在线观看免费| 成人看片黄a免费看在线| 欧美日韩精品久久久免费观看| av中文字幕在线| 亚洲欧美欧美一区二区三区| 久久久久久久久久网| 欧美日韩精品一区二区三区视频| 欧美精品自拍偷拍动漫精品| 丰满人妻一区二区三区免费视频棣| 香蕉视频一区| 久热国产精品视频| 天堂中文在线网| 国产一区在线不卡| 免费一区二区三区| 国产鲁鲁视频在线观看特色| 婷婷一区二区三区| 亚洲色图欧美自拍| 你懂的一区二区三区| 久久伊人色综合| 国产成人无码一区二区三区在线| 欧美aaaaa成人免费观看视频| 国产精品一区二区三区免费| sese在线视频| 天天色天天操综合| 一级黄色片在线免费观看| 青草久久视频| 久久久精品美女| 在线精品免费视| 国产91精品免费| 熟女熟妇伦久久影院毛片一区二区| 天堂√8在线中文| 欧美一区二区三区系列电影| 中文字幕第20页| 亚洲黄色影片| 99国产在线视频| 无遮挡的视频在线观看| 欧美日韩免费看| 韩国三级在线看| 欧美激情国产在线| 国产99视频精品免视看7| 成人爽a毛片一区二区| 国产精品久久久久久久久晋中 | 久久久综合视频| 国产免费内射又粗又爽密桃视频| 高清在线一区| 亚洲天堂网站在线观看视频| 日韩精品一区二区av| 国产成人一区二区精品非洲| 在线不卡日本| 久久不卡日韩美女| 一本色道久久综合狠狠躁篇怎么玩 | 国产欧美日韩精品在线观看| 青青草免费在线| 欧美性猛交xxxx富婆| 日本国产在线视频| 尤物精品在线| 成人h在线播放| 伊人精品影院| 日韩欧美一二区| 91精品国产高清一区二区三蜜臀| 狠狠色综合播放一区二区| 一区二区日本| 欧美黄页在线免费观看| 最近2019中文字幕第三页视频 | 日韩丝袜美女视频| 久热这里有精品| 国产一区二区美女诱惑| 好色先生视频污| 日本综合精品一区| 欧美国产日本在线| 欧美熟妇乱码在线一区| 亚洲v日本v欧美v久久精品| 69亚洲乱人伦| 亚洲永久在线| 亚洲精品美女久久7777777| 成人四虎影院| 欧美成人国产va精品日本一级| 99国产精品欲| 亚洲国产毛片aaaaa无费看 | 国产精品乱码人人做人人爱| 日本国产一级片| 亚洲国产一成人久久精品| 99久热re在线精品996热视频| 欧美性受ⅹ╳╳╳黑人a性爽| 亚洲成在人线av| 区一区二在线观看| 国产精品久久久久久久久搜平片| 五月天激情播播| 国产精品va| 久久亚洲免费| 欧美黄页免费| 久久久视频精品| 九色视频在线观看免费播放| 欧美日韩精品电影| 久久黄色免费网站| 久久精品视频免费观看| 91看片破解版| 国产欧美另类| 亚洲一卡二卡三卡| 一区三区自拍| 国产福利精品在线| 色婷婷av在线| 亚洲免费小视频| 99草在线视频| 日韩欧美亚洲成人| 欧洲第一无人区观看| 91蜜桃婷婷狠狠久久综合9色| 校园春色 亚洲色图| 在线观看亚洲| 亚洲一区二区三区涩| 国产精品99久久免费观看| 国产精品久久久久久久久久99| 国内精品久久久久久野外| 日韩av中文字幕在线| 一级特黄录像免费看| 亚洲一区二区三区精品在线| 欧美激情视频二区| 成人国产精品视频| 激情视频免费网站| 日韩午夜av在线| 伊甸园精品99久久久久久| 免费观看成人www动漫视频| 国产美女精品视频| 天堂在线中文网官网| 色综合久久88色综合天天看泰| 国产免费永久在线观看| 亚洲第一色在线| 国产999久久久| 色综合久久久久综合体| 免费一级特黄特色大片| 亚洲色图.com| 日本美女黄色一级片| 久久久久久久久岛国免费| www.四虎精品| 国产乱码精品1区2区3区| 日本在线一二三区| 老牛国产精品一区的观看方式| 国内少妇毛片视频| 久久精品一区二区不卡| 亚洲三区四区| 国内精品久久久久久久影视简单| 加勒比在线一区二区三区观看| 韩国三级大全久久网站| 国产欧美一区二区三区四区| 超级碰碰久久| 国产91|九色| 丁香花在线电影小说观看| 久久天天躁狠狠躁夜夜躁| yw在线观看| 亚洲一区www| 免费在线国产| 亚洲欧美日韩国产中文专区| 青青草视频免费在线观看| 亚洲国产精品资源| 狠狠综合久久av一区二区| 欧美xingq一区二区| 亚洲精选一区二区三区| 日韩精品一区二| 午夜精品久久久久久久99热黄桃 | 中文字幕中文字幕在线十八区 | 国产aa精品| 91亚洲精品一区| crdy在线观看欧美| 99国产在线视频| 澳门久久精品| 国产精品美女诱惑| 国语一区二区三区| 久精品国产欧美| 要久久电视剧全集免费| 免费av在线一区二区| 九九久久婷婷| 亚洲高清精品中出| 97精品国产福利一区二区三区| 国产麻豆电影在线观看| 一区二区三区网站| www.日本在线视频| 中文亚洲字幕| 免费看污污网站| 国产一区二区在线观看视频| 久久久精品人妻一区二区三区| 成人天堂资源www在线| 无码人妻丰满熟妇区毛片蜜桃精品| 成人精品电影在线观看| 国产精品1000部啪视频| 中文字幕欧美三区| 日韩一区二区不卡视频| 亚洲成av人**亚洲成av**| 激情五月婷婷网| 欧美电影影音先锋| 国精产品乱码一区一区三区四区| 日韩成人在线观看| 香港伦理在线| 久久久久久久香蕉网| 欧美精选视频一区二区| 91热福利电影| 日韩aaa久久蜜桃av| 亚洲美女搞黄| 亚洲高清二区| 伊人影院综合在线| 国产.精品.日韩.另类.中文.在线.播放| 国产十八熟妇av成人一区| 国产欧美一区二区精品忘忧草 | 1024精品一区二区三区| 波多野结衣作品集| 国产精品911| 实拍女处破www免费看| 亚洲黄色av一区| 色老头在线视频| 欧美大片国产精品| 国产精品久久一区二区三区不卡| 欧美片一区二区三区| 免费观看亚洲| 成人av资源网| 97色伦图片97综合影院| 亚洲乱码中文字幕久久孕妇黑人| 精彩视频一区二区| 熟女俱乐部一区二区| 亚洲一区二区三区影院| 亚洲视频在线免费播放| 日韩国产一区三区| av免费在线免费| 国产精品美女久久久免费| 啪啪国产精品| 无码人妻少妇伦在线电影| 精品一区二区三区视频| 国产成人av一区二区三区不卡| 亚洲综合在线第一页| 亚洲天堂网在线观看视频| 亚洲精品自拍第一页| 日韩成人伦理| 91免费高清视频| 日韩成人a**站| 国产精品wwwww| caoporen国产精品视频| 国产精品成人免费观看| 欧美日韩国产一级二级| 国产精品秘入口| 欧美做受高潮电影o| 老汉色老汉首页av亚洲| 久久视频免费在线| 久草精品在线观看| 国产一二三四区在线| 欧美丝袜一区二区三区| 涩涩视频免费看| 久久久久久国产三级电影| 一区二区三区| av动漫免费观看| 奇米影视在线99精品| 国产一区二区三区精品在线| 日韩欧中文字幕| 天堂av在线免费观看| 7777免费精品视频| 老司机aⅴ在线精品导航| 男人天堂av片| 成a人片亚洲日本久久| 久久国产精品波多野结衣| 日韩精品中文字幕在线不卡尤物| av网址在线| 91在线直播亚洲| 欧美日韩精品| 久久久久99人妻一区二区三区| 一区二区视频在线| 亚洲精品久久久狠狠狠爱| 欧美精品精品精品精品免费| 91成人短视频| 精品人妻少妇一区二区| av中文字幕不卡| 国产成人综合欧美精品久久| 亚洲欧洲在线看| 日韩漫画puputoon| 在线观看日本一区| 国产美女娇喘av呻吟久久| 青娱乐国产精品| 亚洲第一精品福利| 英国三级经典在线观看| 欧洲亚洲一区二区| 麻豆国产欧美日韩综合精品二区| 欧美h片在线观看| 日韩一区二区三区精品视频| 欧美大胆的人体xxxx| 久久福利电影| 日本欧美在线看| 中文字幕五月天| 精品电影一区二区三区| 在线视频超级| 亚洲一区精彩视频| 处破女av一区二区| 天天操天天操天天操天天| 日韩中文字幕第一页| 999精品视频在这里| 亚洲欧洲日产国码无码久久99| 国产欧美精品一区| 99热在线只有精品| 2019中文字幕在线观看| 日韩夫妻性生活xx| 第一页在线视频| 欧美性69xxxx肥| 美女写真理伦片在线看| 精品999在线观看| 久久精品国产亚洲一区二区三区| 麻豆国产尤物av尤物在线观看| 日韩精品黄色网| vam成人资源在线观看| 少妇人妻在线视频| 一区在线中文字幕| 偷拍自拍在线| 成人性生交大片免费看视频直播| 亚洲欧洲一级| 成年人看的免费视频| 精品欧美一区二区三区精品久久 | 欧美人xxxx| 国产蜜臀在线| 一区二区三区四区欧美日韩| 不卡的av电影| 国产三级在线观看视频| 日韩免费视频在线观看|