Apabila memulakan aplikasi Spring Boot, kami biasanya menggunakan tetapan lalai yang disediakan oleh pemula, yang mencukupi untuk kebanyakan kes. Walau bagaimanapun, jika kami memerlukan prestasi, terdapat pelarasan khusus yang boleh dibuat, seperti yang akan ditunjukkan dalam bahagian pertama artikel ini.
Aplikasiweb,RESFul, yang menggunakanSpring MVC, secara amnya menambah kebergantungan spring-boot-starter-web, yang secara lalai menggunakan Tomcat sebagai pelayanweb. Walau bagaimanapun, terdapat alternatif yang lebih menarik, sepertiUndertow, iaitu pelayanwebberprestasi tinggi, dengan seni bina tak segerak dan tidak menyekat, yang membolehkan anda mengendalikan sejumlah besar sambungan serentak dengan cekap, menjadikannya sesuai untuk aplikasi berprestasi tinggi. Kami tidak mengatakanTomcatburuk, tetapi kami boleh memberi peluangUndertow.
Untuk kita menggunakanUndertowsebagai pelayanweb, kita perlu mengabaikan kebergantungan spring-boot-starter-tomcat yang spring-boot-starter-web sudah tambah dan kemudian tambah spring-boot-starter-undertow.
Menggunakan pom.xml:
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-undertow
Menggunakan build.gradle:
dependencies { implementation('org.springframework.boot:spring-boot-starter-web') { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' } implementation 'org.springframework.boot:spring-boot-starter-undertow' }
Melalui application.properties atau application.yml, kami boleh mengkonfigurasi berapa banyakbenang IOdan berapa banyakbenang pekerjakami mahu pelayan digunakan.
Menggunakan application.yml
server: undertow: threads: io: 4 worker: 64
Menggunakan application.properties
server.undertow.threads.io=4 server.undertow.threads.worker=64
I/OBenangmelakukan operasi tidak menyekat dan tidak boleh melakukan operasi menyekat, kerana mereka bertanggungjawab untuk mendengar sambungan yang tiba dalam aplikasi, dan kemudian menghantarnya ke baris gilir pemprosesan. Nilai biasa ialah dua I/OBenangsetiap teras CPU.
benang pekerjamelaksanakan operasi menyekat, seperti permintaan Servlet yang dihantar ke baris gilir pemprosesan oleh I/OBenang. Nilai ideal bergantung pada beban kerja, tetapi biasanya disyorkan untuk mengkonfigurasi sekitar 10 utas bagi setiap teras CPU.
Untuk mendapatkan maklumat yang lebih terperinci dan lebih banyak pilihan yang boleh diterokai, hanya pergi ke dokumentasiUndertow.
Mampatan data ialah ciri yang bertujuan untuk mengurangkan saiz badan respons HTTP, yang seterusnya boleh meningkatkan prestasi aplikasi kami dengan mengurangkan jumlah data yang dihantar melalui rangkaian.
Mengkonfigurasi pemampatan data dalam Spring Boot adalah tugas yang remeh, kerana ia menyokong fungsi ini.
Menggunakan application.yml
server: compression: enabled: true mime-types: text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json min-response-size: 1024
Menggunakan application.properties
server.compression.enabled=true server.compression.mime-types=text/html,text/xml,text/plain,text/css,text/javascript,application/javascript,application/json server.compression.min-response-size=1024
server.compression.enabled: Mendayakan/melumpuhkan pemampatan.
server.compression.mime-types: Senarai jenis MIME yang harus dimampatkan.
server.compression.min-response-size: Saiz minimum "Kandungan-Panjang" yang diperlukan untuk pemampatan dilakukan.
Dengan ini, kami menutup bahagian pertama artikel. Dalam bahagian seterusnya, kami akan mempelajari lebih lanjut tentang Hikari, JPA dan Hibernate serta mempelajari cara mengkonfigurasinya, untuk meningkatkan lagi prestasi aplikasi Spring Boot.
Atas ialah kandungan terperinci Meningkatkan prestasi aplikasi Spring Boot - Bahagian I. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!