503 Hizmet Kullanılamıyor - NoActiveTarget

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

Videolar

503 hataları hakkında daha fazla bilgi edinmek için aşağıdaki videolara göz atın:

Video Açıklama
503 Hizmet Kullanılamıyor - NoActiveTargets hatasını giderme ve çözme Aşağıdaki konular hakkında bilgi edinin:
  • Hedef Sunucuların ve Sağlık Durumu İzleyicilerinin Önemi
  • Anlık 503 Hizmet Kullanılamıyor - NoActiveTargets hatasını giderme ve çözme

Belirti

İstemci uygulaması, API proxy istekleri için Service Unavailable mesajı ve NoActiveTargets hata koduyla birlikte 503 HTTP yanıt durum kodunu alır.

Hata mesajı

Aşağıdaki hata yanıtını görürsünüz:

HTTP/1.1 503 Service Unavailable
  

HTTP yanıtında aşağıdaki hata mesajını görürsünüz:

{
   "fault": {
      "faultstring": "The Service is temporarily unavailable",
      "detail": {
           "errorcode": "messaging.adaptors.http.flow.NoActiveTargets"
       }
    }
}
  

Olası nedenler

NoActiveTargets hata koduyla birlikte 503 Service Unavailable HTTP yanıtı genellikle API proxy'nizdeki hedef uç nokta yapılandırmasında bir veya daha fazla hedef sunucu kullandığınızda görülür.

Aşağıdaki tabloda, 503 Hizmet Kullanılamıyor yanıtının NoActiveTargets hata koduyla birlikte gönderilmesinin olası nedenleri listelenmiştir:

Neden Açıklama Sorun giderme adımlarını kimler uygulayabilir?
Hedef Sunucu Devre Dışı Hedef uç nokta yapılandırmasında belirtilen hedef sunucu devre dışı. Edge Public ve Private Cloud kullanıcıları
Yanlış DNS çözümlemesi nedeniyle bağlantı hataları Hedef sunucunun DNS çözümlemesi, bağlantı hatalarına yol açan kötü IP adresleriyle sonuçlandı. Edge Private Cloud kullanıcıları
Bağlantı Hataları Ağ veya bağlantı sorunları, istemcinin sunucuya bağlanmasını engelliyor. Edge Private Cloud kullanıcıları
Yanlış Hedef Ana Makine Takma Adı Belirtilen hedef sunucu ana makinesi yanlış veya istenmeyen karakterler (ör. boşluk) içeriyor. Edge Public ve Private Cloud kullanıcıları
SSL El Sıkışma Hataları İstemci ile sunucu arasında TLS/SSL el sıkışma işlemi başarısız oldu. Edge Public ve Private Cloud kullanıcıları
Durum Denetimi Hataları Hedef sunucunun durumunu kontrol etmek için yapılandırılan durum denetimleri, bazı nedenlerden dolayı başarısız olabilir. Edge Private Cloud kullanıcıları

Neden: Hedef sunucu devre dışı

Hedef uç nokta yapılandırmasında belirtilen tüm hedef sunucular devre dışı bırakılırsa NoActiveTargets hata koduyla 503 Service Unavailable yanıtı alırsınız.

Teşhis

  1. Aşağıdaki yöntemlerden birini kullanarak başarısız olan API proxy'sinin belirli hedef uç nokta yapılandırmasında kullanılan hedef sunucunun adını belirleyin:
    1. Tek bir hedef uç nokta varsa bu hedef uç noktayı kontrol edin.
    2. Birden fazla hedef uç nokta varsa ve hedef sunucunun hangisinde devre dışı bırakıldığından emin değilseniz aşağıdaki adımları uygulayın:
      1. İzleme oturumunu etkinleştirin, API çağrısını yapın ve 503 Hizmet Kullanılamıyor sorununu yeniden oluşturun.
      2. İzlemede Target Request Flow Started'a (Hedef İstek Akışı Başlatıldı) gidin ve hedef uç noktanın adını aşağıdaki şekilde belirleyin:
      3. İzden hedef uç nokta adını belirleme

  2. Hedef uç noktayı belirledikten sonra, hedef uç nokta yapılandırmasından kullanılan hedef sunucu adını alın. Aşağıdaki örnekte bu işlem gösterilmektedir:
    <TargetEndpoint name="default">>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="demo-target" />
        </LoadBalancer>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
          

    Yukarıdaki örnekte, demo-target adlı tek bir hedef sunucu var.

  3. Hedef uç noktasında kullanılan hedef sunucuların her birinin tanımını Edge kullanıcı arayüzünü veya Edge API çağrısını kullanarak alın.

    Edge kullanıcı arayüzü

    Edge kullanıcı arayüzünü kullanarak tanımı almak için:

    1. Yönetici > Ortamlar > Hedef Sunucular'a gidin.
    2. Hatayı gördüğünüz ortamı seçin.
    3. Hedef sunucu tanımını almak için belirli hedef sunucu adını arayın.

      Örneğin, hedef sunucu adını demo-target olarak girerseniz tanımı aşağıdaki gibi gösterilir:

      Hedef sunucu adı ve etkin/devre dışı durumu

      Burada hedef sunucu demo-target'ın ana makine takma adı, bağlantı noktası numarası olduğunu ve SSL'nin etkinleştirildiğini unutmayın. Ancak hedef sunucunun kendisi devre dışıdır . Bu durum, ENABLED öğesinin gri renkte olmasıyla gösterilir.

    Edge API

    Edge API'yi kullanarak tanımı almak için:

    Hedef sunucu tanımını almak için Get TargetServer API'yi kullanın.

    Hedef Sunucu Tanımı Çıkışı

    <TargetServer name="demo-target">
      <Host>demo-target.apigee.net</Host>
      <Port>443</Port>
      <IsEnabled>false</IsEnabled>
      <SSLInfo>
          <Enabled>true</Enabled>
      </SSLInfo>
    </TargetServer>
              

    Apigee API çıkışı, IsEnabled öğesi false olarak ayarlandığından hedef sunucunun demo-target devre dışı olduğunu gösteriyor.

    Hedef sunucu devre dışı olduğundan Mesaj İşleyici, istemciye yanıt olarak hemen 503 Service Unavailable (503 Hizmet Kullanılamıyor) hatasını NoActiveTargets (Etkin Hedef Yok) hata koduyla birlikte gönderir.

Çözünürlük

API Proxy'nizin hedef uç nokta yapılandırmasında kullanılan belirli hedef sunucuların her zaman etkin olduğundan emin olun.

Edge kullanıcı arayüzü

  1. Yönetici > Ortamlar > Hedef Sunucular'a gidin.
  2. Hatayı gördüğünüz ortamı seçin.
  3. Tanımını almak için belirli hedef sunucu adını arayın.
  4. İlgili hedef sunucuyu seçip Düzenle'yi tıklayın.
  5. Etkin onay kutusunu işaretleyin.
  6. Güncelle'yi tıklayın.

Edge API

Hedef sunucu tanımını güncellemek ve Update a Target Server API'nin aşağıdaki gibi API'nin istek yükünde IsEnabled'ın true olarak ayarlandığından emin olmak için bu API'yi kullanın:

<TargetServer name="demo-target">
  <Host>demo-target.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
      <Enabled>true</Enabled>
  </SSLInfo>
</TargetServer>
        

Sorun devam ederse Must Gather Diagnostic Information (Teşhis Bilgileri Toplama) bölümüne gidin.

API izlemeyi kullanarak sorunları teşhis etme

API Monitoring, hata, performans ve gecikme sorunlarını ve bunların kaynağını (ör. geliştirici uygulamaları, API proxy'leri, arka uç hedefleri veya API platformu) teşhis etmek için sorunlu alanları hızlı bir şekilde izole etmenizi sağlar.

API İzleme'yi kullanarak API'lerinizdeki 5xx sorunlarını nasıl gidereceğinizi gösteren örnek bir senaryoyu adım adım inceleyin. Örneğin, messaging.adaptors.http.flow.NoActiveTargets hataların sayısı belirli bir eşiği aştığında bildirim almak için uyarı oluşturmak isteyebilirsiniz.

Teşhis bilgilerini toplamalıdır

Yukarıdaki talimatları uyguladıktan sonra sorun devam ederse lütfen aşağıdaki teşhis bilgilerini toplayın. Aşağıdaki bilgileri Apigee Destek Ekibi ile iletişime geçerek paylaşın:

  1. Herkese açık bulut kullanıcısıysanız aşağıdaki bilgileri sağlayın:
    1. Kuruluş Adı
    2. Ortam adı
    3. API Proxy'sinin Adı
    4. Hatayı yeniden oluşturmak için kullanılan curl komutunun tamamı
    5. NoActiveTargets hata koduyla 503 Hizmet Kullanılamıyor hatası içeren istekleri içeren izleme dosyası
  2. Private Cloud kullanıcısıysanız aşağıdaki bilgileri sağlayın:
    1. Gözlemlenen hata mesajının tamamı
    2. Ortam adı
    3. API proxy paketi
    4. NoActiveTargets hata koduyla 503 Hizmet Kullanılamıyor hatası içeren istekleri içeren izleme dosyası
    5. NGINX Erişim Günlükleri

      (/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log)

    6. Mesaj İşleyici Günlükleri

      (/opt/apigee/var/log/edge-message-processor/logs/system.log)