java / expert
Snippet
Nutzung von virtuellen Threads für skalierbare Web-Services
Spring Boot 3.2+ unterstützt die virtuellen Threads von Java 21. Durch die Konfiguration des Executors kann der Server Tausende von gleichzeitigen I/O-gebundenen Verbindungen mit minimalem Speicher-Overhead im Vergleich zu herkömmlichen Plattform-Threads verarbeiten.
snippet.java
1
2
3
4
5
6
7
8
9
10
@Configurationpublic class VirtualThreadConfig {@Beanpublic TomcatProtocolHandlerCustomizer<?> protocolHandlerCustomizer() {return protocolHandler -> {protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor());};}}// In application.properties: spring.threads.virtual.enabled=true
spring
Erklärung
1
Executors.newVirtualThreadPerTaskExecutor()
Erstellt einen Executor, der für jede eingehende Aufgabe einen neuen leichtgewichtigen virtuellen Thread erzeugt.
2
spring.threads.virtual.enabled=true
Der bevorzugte deklarative Weg, um die Unterstützung für virtuelle Threads für alle Spring-Task-Executoren zu aktivieren.