Bagikan melalui


Cara mengonfigurasi pemeriksaan kesehatan dan periode penghentian yang anggun untuk aplikasi yang dihosting di Azure Spring Apps

Artikel ini berlaku untuk: ✔️ Java ✔️ C#

Artikel ini berlaku untuk: ✔️ Basic/Standard ✔️ Enterprise

Artikel ini memperlihatkan kepada Anda cara menyesuaikan aplikasi yang berjalan di Azure Spring Apps dengan pemeriksaan kesehatan dan periode penghentian yang anggun.

Pemeriksaan adalah aktivitas diagnostik yang dilakukan secara berkala oleh Azure Spring Apps pada instans aplikasi. Untuk melakukan diagnostik, Azure Spring Apps mengambil salah satu tindakan berikut:

  • Menjalankan perintah arbitrer pilihan Anda dalam instans aplikasi.
  • Membuat koneksi soket TCP.
  • Membuat permintaan HTTP.

Azure Spring Apps menawarkan aturan pemeriksaan kesehatan default untuk setiap aplikasi. Artikel ini memperlihatkan kepada Anda cara menyesuaikan aplikasi Anda dengan tiga jenis pemeriksaan kesehatan:

  • Pemeriksaan keaktifan menentukan kapan harus memulai ulang aplikasi. Misalnya, pemeriksaan keaktifan dapat mengidentifikasi kebuntuan, seperti ketika aplikasi berjalan tetapi tidak dapat membuat kemajuan. Memulai ulang aplikasi dalam status kebuntuan dapat membuat aplikasi tersedia meskipun ada kesalahan.

  • Pemeriksaan kesiapan menentukan kapan instans aplikasi siap untuk mulai menerima lalu lintas. Misalnya, pemeriksaan kesiapan dapat mengontrol instans aplikasi mana yang digunakan sebagai backend untuk aplikasi. Saat instans aplikasi belum siap, instans tersebut akan dihapus dari penemuan layanan Kubernetes. Untuk informasi selengkapnya, lihat Menemukan dan mendaftarkan aplikasi Spring Boot Anda. Untuk informasi selengkapnya tentang penemuan layanan dengan paket Enterprise, lihat Menggunakan Tanzu Service Registry.

  • Pemeriksaan startup menentukan kapan aplikasi telah dimulai. Pemeriksaan startup menonaktifkan pemeriksaan keaktifan dan kesiapan hingga startup berhasil, memastikan bahwa pemeriksaan keaktifan dan kesiapan tidak mengganggu startup aplikasi. Anda dapat menggunakan pemeriksaan startup untuk melakukan pemeriksaan keaktifan pada aplikasi awal yang lambat, mencegah aplikasi berakhir sebelum aktif dan berjalan.

Prasyarat

  • Azure CLI dengan ekstensi Azure Spring Apps. Gunakan perintah berikut untuk menghapus versi sebelumnya dan menginstal ekstensi terbaru. Jika sebelumnya Anda menginstal ekstensi spring-cloud, hapus instalannya untuk menghindari ketidakcocokan konfigurasi dan versi.

    az extension remove --name spring
    az extension add --name spring
    az extension remove --name spring-cloud
    

Mengonfigurasi pemeriksaan kesehatan dan penghentian yang anggun untuk aplikasi

Bagian berikut menjelaskan cara mengonfigurasi pemeriksaan kesehatan dan penghentian yang anggun menggunakan Azure CLI.

Penghentian yang anggun

Tabel berikut ini menjelaskan terminationGracePeriodSeconds properti , yang bisa Anda gunakan untuk mengonfigurasi penghentian yang anggun.

Nama properti Deskripsi
terminationGracePeriodSeconds Durasi dalam detik setelah proses yang berjalan dalam instans aplikasi dikirim sinyal penghentian sebelum dihentikan secara paksa. Atur nilai ini lebih lama dari waktu pembersihan yang diharapkan untuk proses Anda. Nilai harus berupa bilangan bulat non-negatif. Mengatur masa tenggang ke 0 segera menghentikan instans aplikasi melalui sinyal matikan, tanpa kesempatan untuk mematikan. Jika nilainya nihil, Azure Spring Apps menggunakan masa tenggang default. Nilai defaultnya adalah 90.

Properti pemeriksaan kesehatan

Tabel berikut ini menjelaskan properti yang bisa Anda gunakan untuk mengonfigurasi pemeriksaan kesehatan.

Nama properti Deskripsi
initialDelaySeconds Jumlah detik setelah instans aplikasi dimulai sebelum pemeriksaan dimulai. Nilai defaultnya adalah 0, nilai minimum.
periodSeconds Frekuensi dalam detik untuk melakukan pemeriksaan. Nilai defaultnya adalah 10. Nilai minimum adalah 1.
timeoutSeconds Jumlah detik sampai waktu pemeriksaan habis. Nilai defaultnya adalah 1, nilai minimum.
failureThreshold Jumlah minimum kegagalan berturut-turut agar pemeriksaan dianggap gagal setelah berhasil. Nilai defaultnya adalah 3. Nilai minimum adalah 1.
successThreshold Jumlah minimum keberhasilan berturut-turut agar pemeriksaan dianggap berhasil setelah gagal. Nilai default adalah 1. Nilainya harus 1 untuk keaktifan dan startup. Nilai minimum adalah 1.

Properti tindakan probe

Ada tiga cara untuk memeriksa instans aplikasi menggunakan pemeriksaan. Setiap pemeriksaan harus menentukan salah satu tindakan pemeriksaan berikut:

  • HTTPGetAction

    Melakukan permintaan HTTP GET terhadap instans aplikasi pada jalur tertentu. Diagnostik dianggap berhasil jika respons memiliki kode status yang lebih besar dari atau sama dengan 200 dan kurang dari 400.

    Nama properti Deskripsi
    scheme Skema yang digunakan untuk menyambungkan ke host. Defaultnya adalah HTTP.
    path Jalur untuk mengakses di server HTTP instans aplikasi, seperti /healthz.
  • ExecAction

    Menjalankan perintah tertentu di dalam instans aplikasi. Diagnostik dianggap berhasil jika perintah keluar dengan kode status 0.

    Nama properti Deskripsi
    command Perintah untuk dijalankan di dalam instans aplikasi. Direktori kerja untuk perintah adalah direktori akar (/) dalam sistem file instans aplikasi. Karena perintah dijalankan menggunakan exec daripada di dalam shell, instruksi shell tidak akan berfungsi. Untuk menggunakan shell, panggil shell secara eksplisit. Status keluar 0 diperlakukan sebagai hidup/sehat, dan non-nol tidak sehat.
  • TCPSocketAction

    Melakukan pemeriksaan TCP terhadap instans aplikasi.

    Tidak ada properti yang tersedia untuk tindakan tersebut TCPSocketAction .

Menyesuaikan aplikasi Anda

Gunakan langkah-langkah berikut untuk menyesuaikan aplikasi Anda menggunakan portal Azure.

  1. Di bawah Pengaturan, pilih Aplikasi, lalu pilih aplikasi dari daftar.

    Screenshot of Azure portal showing the Apps page.

  2. Pilih Konfigurasi di panel navigasi kiri, pilih Pemeriksaan kesehatan, lalu tentukan Properti pemeriksaan kesehatan.

    Screenshot of the Azure portal Configuration page showing the Health probes tab.

  3. Untuk mengatur masa tenggang penghentian, pilih Pengaturan umum, dan tentukan nilai dalam kotak Masa tenggang penghentian.

    Screenshot of the Azure portal Configuration page showing the General settings tab.

Praktik terbaik

Gunakan praktik terbaik berikut saat menambahkan pemeriksaan kesehatan ke Azure Spring Apps:

  • Gunakan pemeriksaan keaktifan dan kesiapan bersama-sama. Azure Spring Apps menyediakan dua pendekatan untuk penemuan layanan secara bersamaan. Ketika pemeriksaan kesiapan gagal, instans aplikasi hanya dihapus dari penemuan layanan Kubernetes. Pemeriksaan keaktifan yang dikonfigurasi dengan benar dapat menghapus instans aplikasi yang dikeluarkan dari penemuan layanan Eureka untuk menghindari kasus yang tidak terduga. Untuk informasi selengkapnya tentang penemuan layanan, lihat Menemukan dan mendaftarkan aplikasi Spring Boot Anda. Untuk informasi selengkapnya tentang penemuan layanan dengan paket Enterprise, lihat Menggunakan Tanzu Service Registry.

  • Saat instans aplikasi dimulai, pemeriksaan pertama terjadi setelah penundaan yang ditentukan oleh initialDelaySeconds. Pemeriksaan berikutnya terjadi secara berkala, sesuai dengan panjang periode yang ditentukan oleh periodSeconds. Jika aplikasi gagal menanggapi permintaan selama beberapa kali seperti yang ditentukan oleh failureThreshold, instans aplikasi akan dimulai ulang. Pastikan aplikasi Anda dapat dimulai dengan cukup cepat, atau memperbarui parameter ini, sehingga total waktu habis initialDelaySeconds + periodSeconds * failureThreshold lebih lama dari waktu mulai aplikasi Anda.

  • Untuk aplikasi Spring Boot, Spring Boot dikirim dengan dukungan Grup Kesehatan, memungkinkan pengembang untuk memilih subset indikator kesehatan dan mengelompokkannya di bawah satu status kesehatan yang berkorelasi. Untuk informasi selengkapnya, lihat Pemeriksaan Keaktifan dan Kesiapan dengan Spring Boot di Blog Spring.

    Contoh berikut menunjukkan pemeriksaan keaktifan dengan Spring Boot:

    "probe": {
           "initialDelaySeconds": 30,
           "periodSeconds": 10,
           "timeoutSeconds": 1,
           "failureThreshold": 30,
           "successThreshold": 1,
           "probeAction": {
               "type": "HTTPGetAction",
               "scheme": "HTTP",
               "path": "/actuator/health/liveness"
           }
       }
    

    Contoh berikut menunjukkan pemeriksaan kesiapan dengan Spring Boot:

    "probe": {
           "initialDelaySeconds": 0,
           "periodSeconds": 10,
           "timeoutSeconds": 1,
           "failureThreshold": 3,
           "successThreshold": 1,
           "probeAction": {
               "type": "HTTPGetAction",
               "scheme": "HTTP",
               "path": "/actuator/health/readiness"
           }
       }
    

Pertanyaan yang Sering Ditanyakan

Bagian ini menyediakan jawaban atas tanya jawab umum tentang menggunakan pemeriksaan kesehatan dengan Azure Spring Apps.

  • Saya menerima respons 400 ketika saya membuat aplikasi dengan pemeriksaan kesehatan yang disesuaikan. Apa artinya ini?

    Pesan kesalahan menunjukkan pemeriksaan mana yang bertanggung jawab atas kegagalan provisi. Pastikan bahwa aturan pemeriksaan kesehatan sudah benar dan waktu habis cukup lama bagi aplikasi untuk berada dalam status berjalan.

  • Apa pengaturan pemeriksaan default untuk aplikasi yang sudah ada?

    Contoh berikut menunjukkan pengaturan default:

    "startupProbe": null,
    "livenessProbe": {
        "disableProbe": false,
        "failureThreshold": 3,
        "initialDelaySeconds": 300,
        "periodSeconds": 10,
        "probeAction": {
            "type": "TCPSocketAction"
        },
        "successThreshold": 1,
        "timeoutSeconds": 3
    },
    "readinessProbe": {
        "disableProbe": false,
        "failureThreshold": 3,
        "initialDelaySeconds": 0,
        "periodSeconds": 5,
        "probeAction": {
            "type": "TCPSocketAction"
        },
        "successThreshold": 1,
        "timeoutSeconds": 3
    }
    

Langkah berikutnya