Rumah  >  Artikel  >  Java  >  Meningkatkan prestasi aplikasi Spring Boot - Bahagian I

Meningkatkan prestasi aplikasi Spring Boot - Bahagian I

王林
王林asal
2024-08-22 12:33:43614semak imbas

Melhorando o desempenho de aplicações Spring Boot - Parte I

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.

Menggantikan Tomcat dengan satu lagi bekas servlet

Aplikasi web, RESFul, yang menggunakan Spring MVC, secara amnya menambah kebergantungan spring-boot-starter-web, yang secara lalai menggunakan Tomcat sebagai pelayan web. Walau bagaimanapun, terdapat alternatif yang lebih menarik, seperti Undertow, iaitu pelayan web berprestasi 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 mengatakan Tomcat buruk, tetapi kami boleh memberi peluang Undertow.

Menambah Undertow dalam Musim Bunga

Untuk kita menggunakan Undertow sebagai pelayan web, 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:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusions>
        </exclusions>
    </dependency>

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

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'
}

Mengkonfigurasi undertow

Melalui application.properties atau application.yml, kami boleh mengkonfigurasi berapa banyak benang IO dan berapa banyak benang pekerja kami 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/O Benang melakukan 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/O Benang setiap teras CPU.

benang pekerja melaksanakan operasi menyekat, seperti permintaan Servlet yang dihantar ke baris gilir pemprosesan oleh I/O Benang. 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 dokumentasi Undertow.

Memampatkan respons HTTP

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn