Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

ลองใช้งาน Virtual Thread ของ Java 19 ใน Spring Boot 3

$
0
0

จากความสามารถ Virtual Thread ใน Java 19 นั้น
เลยลองนำมาใช้งานร่วมกัน Spring Boot 3 ที่เพิ่งปล่อยออกมา (JDK 17 ขึ้นไป)
เพื่อดูว่า performance เป็นอย่างไร

ก่อนอื่นต้องทำการเปลี่ยน thred pool ของ Tomcat embedded
มาเป็น Worker pool (Fork and Join) ด้วย Virtual thread
และเปลี่ยน JDK จาก 17 มาเป็น 19 ดังนี้

[gist id="ba4cf1fd985219899cee70cc49c8cb0b" file="DemoApplication.java"]

จากนั้นลองยิง load test เข้าไปพบว่า
จำนวน Thread ที่สร้างขึ้นมาของ Tomcat จะมีลักษณะเดียวกับ WebFlux เลย
นั่นคือจไมีจำนวนน้อย แต่ยังคงรับ request จำนวนเท่ากันได้เป็นปกติ
แถมยังใช้ memory น้อยกว่าอีกด้วย
การทดสอบใช้ concurrency = 200
แสดงดังรูป

จากการทดลองทั้งการต่อ database และ external API
ในรูปแบบเดิม จำนวน max thread = 200 นั้น
จะได้ concurrency ไม่เกิน 200
แต่ Virtual thread นั้นเกินไปตามจำนวน concurrency ที่กำหนด
เช่น 500 และ 1,000 เป็นต้น โดยไม่ต้องเพิ่ม max thread แต่อย่างไร

เป็นอีกแนวทางที่น่าสนใจ


Viewing all articles
Browse latest Browse all 1997

Trending Articles