Java ile yeniden deneme ilkesi uygulama

Bulutta çalışan veya uzak hizmetlerle ve kaynaklarla iletişim kuran tüm uygulamaların geçici hataları işleyebilmesi gerekir. Bu uygulamaların bir anlık ağ bağlantısı kaybı, bir hizmet veya kaynak meşgul olduğunda istek zaman aşımı veya diğer faktörler nedeniyle hatalarla karşılaşması yaygın bir durumdur. Geliştiriciler, kararlılığı ve dayanıklılığı geliştirmek için geçici hataları şeffaf bir şekilde işlemek için uygulamalar derlemelidir.

Bu makalede, java için Azure Depolama istemci kitaplığını kullanarak Azure Blob Depolama bağlanan bir uygulama için yeniden deneme ilkesi yapılandırmayı öğreneceksiniz. Yeniden deneme ilkeleri, uygulamanın başarısız istekleri nasıl işlediğini tanımlar ve her zaman uygulamanın iş gereksinimlerini ve hatanın niteliğini karşılayacak şekilde ayarlanmalıdır.

Yeniden deneme seçeneklerini yapılandırma

Blob Depolama için yeniden deneme ilkeleri program aracılığıyla yapılandırılır ve yeniden deneme seçeneklerinin çeşitli hizmet isteklerine ve senaryolarına nasıl uygulanacağı üzerinde denetim sağlar. Örneğin, kullanıcı etkileşimini temel alan istekler veren bir web uygulaması, yanıt hızını artırmak ve bir hata oluştuğunda kullanıcıyı bilgilendirmek için daha az yeniden deneme ve daha kısa gecikme süresine sahip bir ilke uygulayabilir. Alternatif olarak, arka planda toplu iş istekleri çalıştıran bir uygulama veya bileşen yeniden deneme sayısını artırabilir ve istek süresinin başarıyla tamamlanmasını sağlamak için üstel bir geri alma stratejisi kullanabilir.

Aşağıdaki tabloda, bir RequestRetryOptions örneği oluştururken kullanılabilen parametrelerin yanı sıra tür, kısa bir açıklama ve değişiklik yapmazsanız varsayılan değer listelenir. Uygulamanızın gereksinimlerini karşılamak için bu özelliklerin değerlerini ayarlama konusunda proaktif olmanız gerekir.

Özellik Türü Açıklama Default value
retryPolicyType RetryPolicyType isteğe bağlı. Yeniden deneme gecikmelerini hesaplamak için kullanılacak yaklaşım. ÜSSEL
maxTries Tamsayı isteğe bağlı. Vazgeçmeden önce en fazla yeniden deneme denemesi sayısı. 4
tryTimeoutInSeconds Tamsayı isteğe bağlı. İstek iptal edilmeden ve başarısız kabul edilmeden önce izin verilen en uzun süre. Zaman aşımının, işlemin uçtan uca geneli için değil, işlem isteği için geçerli olduğunu unutmayın. Bu değer, konak makinede kullanılabilen bant genişliğine ve Depolama hizmetine yakınlığı temel almalıdır. İyi bir başlangıç noktası, beklenen yük boyutunun MB'sı başına 60 saniye olabilir. Integer.MAX_VALUE (saniye)
retryDelayInMs Uzun isteğe bağlı. Bir işlemi yeniden denemeden önce kullanılacak gecikme miktarını belirtir. ÜSTEL için 4ms, DÜZELTİlDİ için 30ms
maxRetryDelayInMs Uzun isteğe bağlı. bir işlemi yeniden denemeden önce izin verilen en uzun gecikmeyi belirtir. 120ms
secondaryHost String isteğe bağlı. İstekleri yeniden denemek için ikincil depolama hesabı uç noktası. Bu değeri ayarlamadan önce eski ve tutarsız olabilecek verileri okumayla ilgili sorunları anlamanız gerekir. Daha fazla bilgi edinmek için bkz . Yüksek oranda kullanılabilir uygulamalar tasarlamak için coğrafi yedekliliği kullanma. Hiçbiri

Aşağıdaki kod örneğinde, RequestRetryOptions örneğinde yeniden deneme seçeneklerini yapılandırıp istemci nesnesi oluşturmak için bu seçeneği iletirizBlobServiceClientBuilder:

RequestRetryOptions retryOptions = new RequestRetryOptions(RetryPolicyType.FIXED, 2, 3, 1000L, 1500L, null);
BlobServiceClient client = new BlobServiceClientBuilder()
        .endpoint("https://<storage-account-name>.blob.core.windows.net/")
        .credential(credential)
        .retryOptions(retryOptions)
        .buildClient();

Bu örnekte, nesneden BlobServiceClient verilen her hizmet isteği, örnekte tanımlandığı RequestRetryOptions gibi yeniden deneme seçeneklerini kullanır. Bu ilke istemci istekleri için geçerlidir. Uygulamanızın gereksinimlerine göre hizmet istemcileri için çeşitli yeniden deneme stratejileri yapılandırabilirsiniz.

Sonraki adımlar

  • Bu makale, Java için Blob Depolama geliştirici kılavuzunun bir parçasıdır. Uygulamanızı derleme bölümünde geliştirici kılavuzu makalelerinin tam listesine bakın.
  • Mimari rehberlik ve yeniden deneme ilkelerine yönelik genel en iyi yöntemler için bkz . Geçici hata işleme.
  • Geçici hatalar için yeniden deneme deseni uygulama yönergeleri için bkz . Yeniden deneme düzeni.