Azure Spring Apps'te barındırılan uygulamalar için sistem durumu yoklamalarını ve düzgün sonlandırma sürelerini yapılandırma
Not
Temel, Standart ve Kurumsal planları, 3 yıllık kullanımdan kaldırma süresiyle Mart 2025 ortasından itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps kullanımdan kaldırma duyurusu.
Standart tüketim ve ayrılmış plan, altı ay sonra tamamen kapatılarak 30 Eylül 2024'den itibaren kullanımdan kaldırılacaktır. Azure Container Apps'e geçiş yapmanızı öneririz. Daha fazla bilgi için bkz . Azure Spring Apps Standart tüketimini ve ayrılmış planı Azure Container Apps'e geçirme.
Bu makale şunlar için geçerlidir: ✔️ Java ✔️ C#
Bu makale şunlar için geçerlidir: ✔️ Temel/Standart ✔️ Kurumsal
Bu makalede, sistem durumu yoklamaları ve düzgün sonlandırma süreleri ile Azure Spring Apps'te çalışan uygulamaları özelleştirme adımları gösterilmektedir.
Yoklama, bir uygulama örneğinde Azure Spring Apps tarafından düzenli aralıklarla gerçekleştirilen bir tanılama etkinliğidir. Tanılama gerçekleştirmek için Azure Spring Apps aşağıdaki eylemlerden birini gerçekleştirir:
- Uygulama örneğinde seçtiğiniz rastgele bir komutu yürütür.
- TCP yuva bağlantısı kurar.
- HTTP isteğinde bulunur.
Azure Spring Apps her uygulama için varsayılan durum yoklaması kuralları sunar. Bu makalede uygulamanızı üç tür sistem durumu yoklaması ile nasıl özelleştirebileceğiniz gösterilmektedir:
Canlılık yoklamaları , bir uygulamanın ne zaman yeniden başlatileceğini belirler. Örneğin, canlılık yoklamaları, bir uygulamanın çalıştığı ancak ilerleme kaydedemediği durumlar gibi bir kilitlenme tanımlayabilir. Uygulamanın kilitlenme durumunda yeniden başlatılması, hatalara rağmen uygulamanın kullanılabilir olmasına neden olabilir.
Hazırlık yoklamaları , bir uygulama örneğinin trafiği kabul etmeye ne zaman hazır olduğunu belirler. Örneğin, hazırlık yoklamaları hangi uygulama örneklerinin uygulama için arka uç olarak kullanıldığını denetleyebilir. Bir uygulama örneği hazır olmadığında Kubernetes hizmet bulma özelliğinden kaldırılır. Daha fazla bilgi için bkz . Spring Boot uygulamalarınızı bulma ve kaydetme. Kurumsal plan ile hizmet bulma hakkında daha fazla bilgi için bkz . Tanzu Service Registry'yi kullanma.
Başlangıç yoklamaları , bir uygulamanın ne zaman başlatıldığını belirler. Başlangıç araştırması, başlatma başarılı olana kadar canlılık ve hazırlık denetimlerini devre dışı bırakır ve canlılık ve hazır olma yoklamalarının uygulama başlatmayı engellemediğinden emin olur. Yavaş başlatan uygulamalar üzerinde canlılık denetimleri gerçekleştirmek ve uygulamanın çalışır duruma gelmeden önce sonlandırılmasını önlemek için başlangıç yoklamalarını kullanabilirsiniz.
Önkoşullar
Azure Spring Apps uzantısıyla Azure CLI . Önceki sürümleri kaldırmak ve en son uzantıyı yüklemek için aşağıdaki komutu kullanın. Spring-cloud uzantısını daha önce yüklediyseniz yapılandırma ve sürüm uyuşmazlıklarını önlemek için bu uzantıyı kaldırın.
az extension remove --name spring az extension add --name spring az extension remove --name spring-cloud
Uygulamalar için sistem durumu yoklamalarını ve düzgün sonlandırmayı yapılandırma
Aşağıdaki bölümlerde Azure CLI kullanılarak sistem durumu yoklamalarının ve düzgün sonlandırmanın nasıl yapılandırıldığı açıklanmaktadır.
Düzgün sonlandırma
Aşağıdaki tabloda, düzgün sonlandırmayı yapılandırmak için kullanabileceğiniz özelliği açıklanmaktadır terminationGracePeriodSeconds
.
Özellik adı | Açıklama |
---|---|
terminationGracePeriodSeconds |
Uygulama örneğinde çalıştırılan işlemler zorla durdurulmadan önce sonlandırma sinyali gönderildikten sonra saniye cinsinden süre. Bu değeri, işleminiz için beklenen temizleme süresinden daha uzun ayarlayın. Değer negatif olmayan bir tamsayı olmalıdır. Yetkisiz kullanım süresini 0 olarak ayarlamak, uygulama örneğini sonlandırma sinyali aracılığıyla hemen durdurur ve kapatma fırsatı olmaz. Değer sıfır olduğunda Azure Spring Apps varsayılan yetkisiz kullanım süresini kullanır. Varsayılan değer 90'dır. |
Sistem durumu yoklaması özellikleri
Aşağıdaki tabloda sistem durumu yoklamalarını yapılandırmak için kullanabileceğiniz özellikler açıklanmaktadır.
Özellik adı | Açıklama |
---|---|
initialDelaySeconds |
Yoklamalar başlatılmadan önce uygulama örneği başlatıldıktan sonraki saniye sayısı. Varsayılan değer 0,en düşük değerdir. |
periodSeconds |
Araştırmayı gerçekleştirmek için saniye cinsinden sıklık. Varsayılan değer 10'dur. En düşük değer 1'dir. |
timeoutSeconds |
Yoklamanın zaman aşımına uğradıklarından saniye sayısı. Varsayılan değer 1,en düşük değerdir. |
failureThreshold |
Başarılı olduktan sonra yoklamanın başarısız olduğu düşünülmesi için en az ardışık hata sayısı. Varsayılan değer 3'dür. En düşük değer 1'dir. |
successThreshold |
Başarısız olduktan sonra yoklamanın başarılı olarak kabul edilmesi için en az ardışık başarı sayısı. Varsayılan değer 1 şeklindedir. Canlılık ve başlangıç için değer 1 olmalıdır. En düşük değer 1'dir. |
Araştırma eylemi özellikleri
Yoklama kullanarak bir uygulama örneğini denetlemenin üç yolu vardır. Her araştırma aşağıdaki yoklama eylemlerinden birini tanımlamalıdır:
HTTPGetAction
Belirtilen yolda uygulama örneğine yönelik bir HTTP GET isteği gerçekleştirir. Yanıt 200'den büyük veya buna eşit ve 400'den küçük bir durum koduna sahipse tanılama başarılı olarak kabul edilir.
Özellik adı Açıklama scheme
Konağa bağlanmak için kullanılacak şema. Varsayılan değer HTTP'dir. path
Uygulama örneğinin HTTP sunucusunda /healthz gibi erişim yolu. ExecAction
Uygulama örneğinin içinde belirtilen bir komutu yürütür. Komut 0 durum koduyla çıkılırsa tanılama başarılı olarak kabul edilir.
Özellik adı Açıklama command
Uygulama örneğinin içinde yürütülecek komut. Komutun çalışma dizini, uygulama örneğinin dosya sistemindeki kök dizindir (/). Komut bir kabuğun içinde değil kullanılarak exec
çalıştırıldığından, kabuk yönergeleri çalışmaz. Bir kabuk kullanmak için, açıkça kabuğa çağrıda bulunur. 0 çıkış durumu canlı/sağlıklı olarak değerlendirilir ve sıfır olmayan iyi durumda değildir.TCPSocketAction
Uygulama örneğinde TCP denetimi gerçekleştirir.
Eylem için
TCPSocketAction
kullanılabilir özellik yok.
Uygulamanızı özelleştirme
Azure portalını kullanarak uygulamanızı özelleştirmek için aşağıdaki adımları kullanın.
Ayarlar'ın altında Uygulamalar'ı ve ardından listeden uygulamayı seçin.
Sol gezinti bölmesinde Yapılandırma'yı seçin, Sistem durumu yoklamaları'nı seçin ve sistem durumu yoklaması özelliklerini belirtin.
Sonlandırma yetkisiz kullanım süresini ayarlamak için Genel ayarlar'ı seçin ve Sonlandırma yetkisiz kullanım süresi kutusunda bir değer belirtin.
En iyi yöntemler
Azure Spring Apps'e sistem durumu yoklamaları eklerken aşağıdaki en iyi yöntemleri kullanın:
Canlılık ve hazırlık yoklamalarını birlikte kullanın. Azure Spring Apps, aynı anda hizmet bulma için iki yaklaşım sunar. Hazır olma yoklaması başarısız olduğunda, uygulama örneği yalnızca Kubernetes hizmet bulmadan kaldırılır. Düzgün yapılandırılmış bir canlılık yoklaması, beklenmeyen durumlardan kaçınmak için verilen uygulama örneğini Eureka hizmet keşfinden kaldırabilir. Hizmet bulma hakkında daha fazla bilgi için bkz . Spring Boot uygulamalarınızı bulma ve kaydetme. Kurumsal plan ile hizmet bulma hakkında daha fazla bilgi için bkz . Tanzu Service Registry'yi kullanma.
Bir uygulama örneği başlatıldığında, tarafından
initialDelaySeconds
belirtilen gecikmeden sonra ilk denetim gerçekleşir. Sonraki denetimler, tarafındanperiodSeconds
belirtilen süre uzunluğuna göre düzenli aralıklarla gerçekleşir. Uygulama tarafındanfailureThreshold
belirtilen istekleri birkaç kez yanıtlayamazsa, uygulama örneği yeniden başlatılır. Toplam zaman aşımınıninitialDelaySeconds + periodSeconds * failureThreshold
uygulamanızın başlangıç zamanından daha uzun olması için uygulamanızın yeterince hızlı başlatabileceğinden veya bu parametreleri güncelleştirebileceğinden emin olun.Spring Boot uygulamaları için Spring Boot, Sistem Durumu Grupları desteğiyle birlikte gönderilir ve geliştiricilerin sistem durumu göstergelerinin bir alt kümesini seçmesine ve bunları tek bir bağıntılı sistem durumu altında gruplandırmasına olanak tanır. Daha fazla bilgi için Spring Blog'da Spring Boot ile Canlılık ve Hazırlık Yoklamaları bölümüne bakın.
Aşağıdaki örnekte Spring Boot ile canlılık araştırması gösterilmektedir:
"probe": { "initialDelaySeconds": 30, "periodSeconds": 10, "timeoutSeconds": 1, "failureThreshold": 30, "successThreshold": 1, "probeAction": { "type": "HTTPGetAction", "scheme": "HTTP", "path": "/actuator/health/liveness" } }
Aşağıdaki örnekte Spring Boot ile hazır olma araştırması gösterilmektedir:
"probe": { "initialDelaySeconds": 0, "periodSeconds": 10, "timeoutSeconds": 1, "failureThreshold": 3, "successThreshold": 1, "probeAction": { "type": "HTTPGetAction", "scheme": "HTTP", "path": "/actuator/health/readiness" } }
Sık sorulan sorular
Bu bölüm, Azure Spring Apps ile sistem durumu yoklamalarını kullanma hakkında sık sorulan soruların yanıtlarını sağlar.
Özelleştirilmiş sistem durumu yoklamalarına sahip uygulamalar oluşturduğumda 400 yanıt aldım. Bu ne anlama geliyor?
Hata iletisi, sağlama hatasından hangi yoklamanın sorumlu olduğunu gösterir. Sistem durumu yoklaması kurallarının doğru olduğundan ve zaman aşımının uygulamanın çalışır durumda olması için yeterince uzun olduğundan emin olun.
Mevcut bir uygulama için varsayılan yoklama ayarları nelerdir?
Aşağıdaki örnekte varsayılan ayarlar gösterilmektedir:
"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 }
Sonraki adımlar
- Azure Spring Apps'te bir uygulamayı ölçeklendirme.