精品欧美一区二区三区在线观看 _久久久久国色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)

国产综合 伊人色| 日韩欧美亚洲国产另类| 欧美极品视频一区二区三区| 中文字幕在线观看视频网站| 色爱av综合网| 欧美性生活大片视频| 椎名由奈jux491在线播放| www久久久com| 另类av一区二区| 色一区av在线| 熟妇高潮一区二区| 日本在线视频一区二区| 亚洲视频在线一区| 久精品国产欧美| 国产又爽又黄又嫩又猛又粗| 禁久久精品乱码| 伊人久久久久久久久久久久久| www,av在线| 91精品论坛| 一区二区久久久| 日本一区不卡| 欧美自拍偷拍一区二区| 久久精品噜噜噜成人av农村| 国内揄拍国内精品| 国产免费一区二区三区四区| 乱亲女h秽乱长久久久| 精品视频1区2区3区| 777av视频| 黄色网页在线免费看| proumb性欧美在线观看| 91在线观看免费高清| 亚洲GV成人无码久久精品 | 欧美mv日韩mv国产网站| 国产91色在线观看| 中文字幕在线看片| 亚洲午夜三级在线| 日本一区二区三区四区五区六区| 狠狠v欧美ⅴ日韩v亚洲v大胸| 国产成人在线免费| 成人在线精品视频| 一区二区三区麻豆| 久久最新视频| 欧美有码在线观看| 国产精品自拍视频一区| 雨宫琴音一区二区三区| 亚洲午夜久久久影院| 超碰97在线资源站| 福利在线一区| 日韩欧美国产精品一区| 天天操狠狠操夜夜操| 日韩高清在线| 欧美视频在线视频| 国产97在线 | 亚洲| xxxx视频在线| 亚洲成人资源在线| 亚洲人成无码网站久久99热国产| 色女人在线视频| 亚洲精品乱码久久久久久久久 | 91gao视频| 精品人妻无码一区二区色欲产成人| 久久国产婷婷国产香蕉| 国产区亚洲区欧美区| 亚洲天堂中文字幕在线| 日本欧美一区二区| 国产欧美在线视频| 国产永久免费视频| 国产九九视频一区二区三区| 91欧美激情另类亚洲| 国产绳艺sm调教室论坛| 国产精品主播直播| 动漫3d精品一区二区三区 | 穿情趣内衣被c到高潮视频| 国产在线观看a| 樱花草国产18久久久久| 欧美性潮喷xxxxx免费视频看| 婷婷av在线| 午夜精品爽啪视频| 黄色a级片免费| 91综合国产| 9191久久久久久久久久久| 免费看的av网站| 久久资源综合| 亚洲亚裔videos黑人hd| 欧美xxxooo| 欧美久久99| 91av视频在线| 少妇无套内谢久久久久| 国产中文字幕一区| 成人片在线免费看| 精品视频二区| 亚洲人吸女人奶水| av免费观看网| 四虎精品在线观看| 亚洲大胆人体av| 法国空姐电影在线观看| 国产高清久久| 91精品91久久久久久| 国产一级精品毛片| 国产成人精品午夜视频免费| 久久久久se| 麻豆tv入口在线看| 精品欧美激情精品一区| 国产又大又黄又猛| 国产一区二区三区不卡av| 亚洲欧美制服第一页| 日本高清一二三区| 性欧美精品高清| 91久热免费在线视频| 日本免费一区视频| 亚洲欧美综合在线精品| 欧美日韩一道本| 日韩专区视频| 亚洲精品自拍偷拍| www青青草原| 日韩国产精品91| 国产精选在线观看91| 最新av网站在线观看| 婷婷亚洲久悠悠色悠在线播放 | yw.尤物在线精品视频| 日韩一区二区三区视频| 91在线无精精品白丝| 亚洲精品三级| 91精品视频在线播放| 国产有码在线| 精品福利一区二区| 国产麻豆剧传媒精品国产| 欧美三级伦理在线| 777精品视频| 性中国xxx极品hd| 国产精品久久精品日日| 无码无遮挡又大又爽又黄的视频| av毛片精品| 成人444kkkk在线观看| 久久久久久久亚洲| 26uuu久久综合| 日韩中字在线观看| 一本色道69色精品综合久久| 久久精品国产欧美亚洲人人爽| 日日夜夜操视频| 91亚洲永久精品| 性高湖久久久久久久久aaaaa| 91精品福利观看| 日韩在线视频二区| 伊人网站在线观看| 国产视频一区二区三区在线观看| 欧美 日韩 激情| 免费观看成人www动漫视频| 欧美国产日韩一区| 午夜精品久久久久久久爽 | av中文资源在线| 欧美性xxxxxxx| 国产精品无码在线| 伊人久久亚洲美女图片| 成人免费在线视频网址| 日本精品一区二区三区在线播放| 色综合天天狠狠| 免费中文字幕av| 野花国产精品入口| 国产亚洲一区在线播放 | 一二三四区精品视频| 五月天婷婷影视| 91亚洲自偷观看高清| 国产精品黄视频| 激情福利在线| 欧美三级电影网| 美国一级黄色录像| 免费一级片91| 亚欧精品在线| 日韩黄色三级在线观看| 日韩中文理论片| av在线资源观看| 一区二区三区四区乱视频| 美女被艹视频网站| 自拍偷拍欧美专区| 国产91色在线|亚洲| av免费不卡国产观看| 亚洲精品国产欧美| 99精品人妻国产毛片| 久久精品人人做人人综合| 久久免费视频3| 日韩欧美视频在线播放| 成人h视频在线| 影音先锋在线播放| 亚洲成人av在线播放| 国产无套内射又大又猛又粗又爽| 99这里都是精品| 黄色a级片免费| 日韩在线观看一区| 亚洲free性xxxx护士hd| a黄色片在线观看| 亚洲黄色在线看| 波多野结衣视频在线观看| 国产精品嫩草99a| 91香蕉视频在线观看视频| 国产精品s色| 久久综合九色欧美狠狠| 日韩黄色碟片| 欧美精品第一页在线播放| 三级在线电影| 欧美性猛交xxxx久久久| 日韩高清dvd碟片| 波多野结衣一区二区三区| 啊啊啊一区二区| 99久久综合| 久久99热只有频精品91密拍| 97精品国产99久久久久久免费| 日韩中文视频免费在线观看| 免费国产黄色片| 91成人免费在线视频| 久热精品在线观看| 久久精品在线免费观看| 无码国产精品一区二区高潮| 亚洲少妇自拍| 欧美h视频在线观看| 日韩动漫一区| 91免费精品视频| 综合另类专区| 久久激情五月丁香伊人| 欧美一区二区少妇| 日韩限制级电影在线观看| 日韩av电影网| 成人欧美一区二区三区1314| 中文字幕精品视频在线| 精品综合免费视频观看| 一本色道无码道dvd在线观看| 欧美一区不卡| 日韩av一区二区三区美女毛片| 日韩视频在线直播| 国产在线精品自拍| 自拍偷拍亚洲视频| 欧美国产亚洲精品久久久8v| аⅴ资源新版在线天堂| 精品欧美一区二区三区精品久久 | 91色在线视频| 秋霞国产精品| 欧亚精品中文字幕| 3344国产永久在线观看视频| 按摩亚洲人久久| 国产资源在线看| 日韩av资源在线播放| 国产又粗又猛又爽又黄91| 在线看日本不卡| 51国产偷自视频区视频| 亚洲小说欧美激情另类| 一级黄色片日本| 中文字幕亚洲精品在线观看| 在线观看国产精品一区| 91色porny| 成人在线视频免费播放| 成人黄色综合网站| wwwxxxx在线观看| 久久99精品国产91久久来源| 亚洲视频在线观看一区二区三区| 久久精品麻豆| 国产精品宾馆在线精品酒店| 99热免费精品在线观看| www.成年人视频| 自拍欧美日韩| 草草视频在线免费观看| 狠狠入ady亚洲精品| 成人一区二区av| 亚洲精品久久| 强开小嫩苞一区二区三区网站| 91影院成人| 综合视频免费看| 日韩a一区二区| 一区二区三区偷拍| 亚洲欧洲美洲一区二区三区| 一区二区在线不卡| 99欧美视频| 欧美极品少妇无套实战| 亚洲大胆av| 国产成人无码精品久久久性色| 亚洲网址在线| 妺妺窝人体色www看人体| 亚洲精华国产欧美| 日韩av黄色网址| 日韩成人免费在线| 成人性生生活性生交12| 极品少妇一区二区| 国产又黄又嫩又滑又白| 成人福利视频在线看| 亚洲少妇一区二区三区| 91免费看片在线观看| 中文字幕成人动漫| 国产精品日韩成人| 91狠狠综合久久久| 天天综合天天做天天综合| 青青草免费观看视频| 欧美在线你懂的| a级片在线视频| 亚洲精品成人久久久| 黄色在线网站| 久久国产天堂福利天堂| 亚洲一区资源| 国产日韩亚洲欧美| 丁香五月缴情综合网| 欧美在线播放一区二区| 亚洲一本二本| 91视频最新入口| 久久aⅴ国产欧美74aaa| 国产男女无遮挡猛进猛出| 久久久精品免费网站| 黄色a级片在线观看| 亚洲成人av一区| 中文在线字幕免费观| 欧美第一区第二区| 黄色av免费在线看| 欧美国产乱视频| 色综合视频一区二区三区日韩| 国产精品一区二区三区在线| 欧美日韩中文字幕一区二区三区 | 久蕉在线视频| 久99九色视频在线观看| se01亚洲视频| 国产成人亚洲欧美| 妖精一区二区三区精品视频| 屁屁影院ccyy国产第一页| 亚洲女人av| 黄色三级视频在线播放| 久久男人中文字幕资源站| 91在线播放观看| 色8久久精品久久久久久蜜| 精品国产乱码一区二区三 | 国产欧美黑人| 青青草原成人在线视频| 国产精久久久| 一本久道久久综合狠狠爱亚洲精品| 影音先锋在线一区| 香蕉视频xxxx| 国产女主播一区| 亚洲天堂一区在线观看| 日韩欧美一级特黄在线播放| 日本在线免费| 国产suv精品一区二区三区88区 | 国产视频一区二区三区四区| 91精品国产福利在线观看麻豆| 国产免费人做人爱午夜视频| 91蜜桃视频在线| 国产网站在线看| 精品国产乱码久久久久久蜜臀| 色女人在线视频| 2019国产精品视频| 先锋资源久久| 天堂在线精品视频| 一区二区三区四区在线| 黄色小视频免费观看| 国内精品久久久久影院 日本资源 国内精品久久久久伊人av | 久久国产视频精品| 日韩视频免费直播| 五月婷婷在线观看| 国产精品第8页| 国产99久久| 欧美aⅴ在线观看| 久久久久久久久久久久久女国产乱| 国产午夜视频在线播放| 精品少妇一区二区三区| 日本资源在线| 国产精品九九九| 波多野结衣的一区二区三区| 噜噜噜久久亚洲精品国产品麻豆| av不卡在线播放| 五月天婷婷色综合| 欧美一区二区三区四区视频| 老司机99精品99| 91在线免费观看网站| 综合五月婷婷| 中文字幕乱视频| 无码av免费一区二区三区试看| 欧美自拍第一页| 欧美一级电影久久| 久久久久久毛片免费看| 青青草成人免费在线视频| 懂色一区二区三区免费观看| 精品一区免费观看| 亚洲国产免费av| 日韩精品一区二区三区av| 亚洲免费视频一区| 国产呦萝稀缺另类资源| 亚洲av鲁丝一区二区三区 | 国产欧美日韩卡一| 中文字幕日韩第一页| 欧美大片第1页| 国产毛片久久久| 黄色片视频在线播放| 国产视频不卡一区| 国产一区二区在线视频观看| 欧美黑人狂野猛交老妇| 国产精品网站在线看| 欧美日韩亚洲一| 国产午夜精品久久久久久免费视 | av网站在线免费看推荐| 岛国视频一区免费观看| 日欧美一区二区| 日韩福利在线视频| 在线不卡a资源高清| 九九色在线视频| 热re99久久精品国产99热| 国产成人av电影在线| 亚洲第一在线播放|