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.
Di bawah Pengaturan, pilih Aplikasi, lalu pilih aplikasi dari daftar.
Pilih Konfigurasi di panel navigasi kiri, pilih Pemeriksaan kesehatan, lalu tentukan Properti pemeriksaan kesehatan.
Untuk mengatur masa tenggang penghentian, pilih Pengaturan umum, dan tentukan nilai dalam kotak Masa tenggang penghentian.
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 olehperiodSeconds
. Jika aplikasi gagal menanggapi permintaan selama beberapa kali seperti yang ditentukan olehfailureThreshold
, instans aplikasi akan dimulai ulang. Pastikan aplikasi Anda dapat dimulai dengan cukup cepat, atau memperbarui parameter ini, sehingga total waktu habisinitialDelaySeconds + 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk