503 Hizmet Kullanılamıyor

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Videolar

503 hatalarıyla ilgili daha fazla bilgi için aşağıdaki videoları izleyin:

Video Açıklama
DNS sorunundan kaynaklanan 503 Hizmeti Kullanılamıyor Hatasını Giderme ve Çözme Aşağıdakiler hakkında bilgi edinin:
  • Apigee Edge'deki DNS çözümlemesi ve ağ ile ilgili sorunlardan kaynaklanan 503 Hizmet Kullanılamıyor hatası
  • DNS çözümleme sorunundan kaynaklanan gerçek zamanlı 503 Hizmet Kullanılamıyor hatasıyla ilgili sorunları giderme ve çözme
Ağ sorunu nedeniyle 503 Hizmeti Kullanılamıyor Hatasını Giderme ve Çözme Apigee Edge'deki ağ sorunundan kaynaklanan gerçek zamanlı 503 Hizmet Kullanılamıyor Hatası'nı giderme ve çözme

Belirti

İstemci uygulaması Hizmet Kullanılamıyor mesajıyla birlikte 503 HTTP yanıt durumu alıyor API proxy çağrısının ardından

Hata mesajları

Aşağıdaki hata mesajını görebilirsiniz:

HTTP/1.1 503 Service Unavailable
      

HTTP yanıtında aşağıdaki hata mesajını da görebilirsiniz:

Hizmet kullanılamıyor

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

Olası nedenler

messaging.adaptors.http.flow.ServiceUnavailable hata kodunu içeren 503 Hizmet Kullanılamıyor HTTP yanıtı bağlantı zaman aşımına bağlı olarak Apigee Edge’in Mesaj İşlemcisi’nde hata oluşursa, yanlış ana makine adı veya arka uç sunucusuyla iletişim kurarken SSL el sıkışma hataları.

503 Hizmet Kullanılamıyor yanıtının olası nedenleri şunlardır:

Neden Açıklama Sorun giderme adımlarını kimler uygulayabilir?
Yanlış DNS çözümlemesinden kaynaklanan bağlantı hataları Hedef sunucunun DNS çözümlemesi, bağlantı hatalarına neden olan hatalı IP adreslerine yol açtı. 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 sunucu ana makine adı Belirtilen hedef sunucu ana makinesi yanlış veya istenmeyen karakterler (ör. boşluk) içeriyor. Edge Herkese Açık ve Private Cloud kullanıcıları
SSL el sıkışma hataları İstemci ile sunucu arasındaki TLS/SSL el sıkışması başarısız oldu. (Bu sınıf için sorun giderme problemi ayrı bir konuda ele alacağız.) Edge Herkese Açık ve Private Cloud kullanıcıları

Sık kullanılan teşhis adımları

Başarısız isteğin Mesaj Kimliğini belirleme

İzleme aracı

İzleme Aracı'nı kullanarak başarısız isteğin ileti kimliğini belirlemek için:

  1. Sorun hâlâ devam ediyorsa etkilenen API için izleme oturumunu etkinleştirin.
  2. API çağrısında bulunun ve sorunu yeniden oluşturun: 503 Hizmet Kullanılamıyor durumu (messaging.adaptors.http.flow.ServiceUnavailable. hata koduyla)
  3. Başarısız isteklerden birini seçin.
  4. AX aşamasına gidin ve aşağıdaki şekilde gösterildiği gibi, Aşama Ayrıntıları bölümünü aşağı kaydırarak isteğin ileti kimliğini (X-Apigee.Message-ID) belirleyin.

    Aşama Ayrıntıları bölümünde mesaj kimliği

NGINX erişim günlükleri

NGINX erişim günlüklerini kullanarak başarısız isteğin ileti kimliğini belirlemek için:

503 hatalarının ileti kimliğini belirlemek için NGINX Erişim günlüklerine de bakabilirsiniz. Bu, özellikle sorun geçmişte olduysa veya ara sıra devam ediyorsa işe yarar ve kullanıcı arayüzünde izini yakalayamazsınız. NGINX erişim günlüklerindeki bu bilgileri belirlemek için aşağıdaki adımları uygulayın:

  1. NGINX erişim günlüklerini kontrol edin: (/opt/apigee/var/log/edge-router/nginx/ <org>~ <env>.<port#>_access_log)
  2. Belirli bir süre içinde belirli API proxy'si için 503 hatası olup olmadığını arayın (sorun geçmişte oluşmuşsa) veya 503 ile hâlâ başarısız olan istekler varsa.
  3. X-Apigee-fault-codeMessaging.adaptors.http.flow.Servicelarından yararlanarak herhangi bir 503 hatası varsa aşağıdaki örnekte gösterildiği gibi, bu tür bir veya daha fazla isteğin ileti kimliğini not edin:

    503 Hatası'nı gösteren Örnek Giriş

    Durum kodu, mesaj kimliği, hata kaynağı ve hata kodunu gösteren örnek giriş

Yanlış DNS çözümlemesinden kaynaklanan bağlantı hataları

Teşhis

  1. Başarısız isteğin mesaj kimliğini belirleyin.
  2. Mesaj İşleyen günlüğünde (/opt/apigee/var/log/edge-message-processor/logs/system.log) belirli bir istek iletisi kimliğini arayın. Aşağıdaki hataları görebilirsiniz:

    onConnectTimeout hatası, İleti İşleyen'in önceden ayarlanmış bağlantı zaman aşımı süresi içinde (Varsayılan: 3 saniye) arka uç sunucusuna bağlanamadığını gösterir.
    2019-08-14 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onTimeout() : ClientChannel[Connected:]@164162 useCount=1 bytesRead=0 bytesWritten=0 age=3001ms lastIO=3001ms .onConnectTimeout connectAddress=www.abc.com/11.11.11.11  resolvedAddress=www.abc.com/22.22.22.22
    
    2019-08-14 09:11:49,333 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 ERROR ADAPTORS.HTTP.FLOW - RequestWriteListener.onTimeout() : RequestWriteListener.onTimeout(HTTPRequest@6b393600)
          
  3. onConnectTimeout hatasındaki çözümlenen IP adresini not edin ve IP adresinin arka uç sunucunuz için geçerli olup olmadığını kontrol edin. IP adresi geçerliyse Bağlantı Hataları'na gidin.
  4. IP adresi geçersizse bunun nedeni büyük olasılıkla DNS çözümlemesiyle ilgili sorunlardır.
  5. Başarısız birkaç API isteği daha için 3. ve 4. adımı tekrarlayın ve aynı veya başka geçersiz IP adresleri görüp görmediğinizi doğrulayın.
  6. İleti İşleyici günlüğünde (/opt/apigee/var/log/edge-message-processor/logs/system.log) DNS Refresh anahtar kelimesini içeren iletileri arayın. İleti İşleyici'de zaman zaman hatalı veya geçersiz IP adreslerinin DNS önbelleğine eklenip eklenmediğini kontrol edin.
    2019-08-14 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@0 INFO c.a.p.h.d.DNSCachedAddress - DNSCachedAddress.reportDifferences() : DNS Refresh for host: apitarget-uat.schemeweb.co.uk:4436. Added 2 IPs [www.abc.com/22.22.22.22, www.abc.com/33.33.33.33] Removed 1 IPs [www.abc.com/11.11.11.11]
          
  7. Bu sorun, yetkili DNS sunucuları veya /etc/resolv.conf politikasında yapılandırılan alan adı sunucuları ile ilgili sorun varsa ortaya çıkabilir.
    . 'nı inceleyin.
    Genellikle, DNS çözümlemesini gerçekleştirmek üzere yapılandırılmış bir veya daha fazla yetkili DNS sunucusu olabilir. Yetkili DNS sunucusu yoksa /etc/resolv.conf hizmetindeki yapılandırma ayarlarını kullanır ve DNS çözümlemesini gereken şekilde gerçekleştirir. Örneğin /etc/resolv.conf, belirli alan adı sunucularını kullanacak şekilde yapılandırılmışsa DNS çözümlemesi için bu alan adı sunucuları kullanılır.
  8. /etc/resolv.conf politikasında belirtilen yetkili DNS sunucuları veya alan adı sunucuları ile ilgili sorun varsa arka uç sunucusu ana makine adları, hatalı/geçersiz IP adreslerine çözümlenir. Bu durumda hatalı/geçersiz IP adresleri İleti İşleyen'in DNS önbelleğinde depolanır.
    1. /etc/resolv.conf politikasında belirtilen yetkili DNS sunucuları veya alan adı sunucularıyla ilgili sorun devam ediyorsa hatalı/geçersiz IP adresleri, İleti İşleyen'in DNS önbelleğinde kalmaya devam eder. Hatalı IP adresleri İleti İşleyici'nin DNS önbelleğinde depolandığı sürece, ilgili arka uç sunucusunu kullanan tüm bu API'lara yapılan istekler 503 hatasıyla başarısız olur.
    2. /etc/resolv.conf politikasında belirtilen yetkili DNS sunucuları veya alan adı sunucularıyla ilgili sorun aralıklıysa iyi ve kötü IP adresleri aralıklı olarak DNS önbelleğinde depolanır. Bu durumda, ilgili arka uç sunucusunu kullanan tüm API'lerde ara sıra 503 hataları görürsünüz.
  9. DNS sunucularıyla ilgili sorun kalıcıysa sürekli hatalarla karşılaşırsınız. DNS sunucularıyla ilgili sorun aralıklıysa, aralıklı olarak hata mesajları görürsünüz. Diğer bir deyişle, arka uç sunucu ana makine adı kötü IP adreslerine çözümlendiğinde 503 hataları görürsünüz. Arka uç sunucu ana makine adları iyi IP adreslerine çözümlendiğinde başarılı yanıtlar olduğunu görürsünüz.

Çözünürlük

Lütfen işletim sistemi yöneticinizle birlikte çalışarak DNS sunucularıyla ilgili sorunları giderin.

  1. /etc/resolv.conf politikasında belirtilen yetkili DNS sunucularınızla veya alan adı sunucularınızla ilgili bir sorun varsa düzeltmek için uygun sunucuyla ilgili sorunu düzeltin.
  2. İleti İşlemcilerinin bulunduğu sistemlerde /etc/resolv.conf yapılandırmasıyla ilgili herhangi bir sorun varsa yapılandırma sorununu düzeltin.

Bağlantı hataları

Apigee Edge mesaj işlemcisi bir arka uca bağlanmaya çalıştığında bağlantı hatası oluşuyor sunucusunda sorun, şu sorunlardan biri oluşur:

  • İleti İşleyici, önceden ayarlanmış bağlantı zaman aşımı süresi içinde bağlanamıyor. (Varsayılan: 3 saniye)
  • Arka uç sunucusu bağlantıyı reddediyor.

Teşhis

  1. Başarısız isteğin mesaj kimliğini belirleyin.
  2. Mesaj İşleyen günlüğünde (/opt/apigee/var/log/edge-message-processor/logs/system.log) belirli bir istek iletisi kimliğini arayın. Aşağıdaki hataları görebilirsiniz:
    1. onConnectTimeout hatası, İleti İşleyici'nin arka uç sunucusuna önceden ayarlanmış bağlantı zaman aşımı süresi içinde bağlanmalıdır.
      2016-06-23 09:11:49,314 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@2 ERROR HTTP.CLIENT - HTTPClient$Context.onTimeout() : ClientChannel[C:]@10 useCount=1 bytesRead=0 bytesWritten=0 age=3001ms lastIO=3001ms .onConnectTimeout connectAddress=www.abc.com/11.11.11.11:80 resolvedAddress=www.abc.com/11.11.11.11
      2016-06-23 09:11:49,333 org:myorg env:prod api:Employees rev:1 messageid:mo-96cf6757a-9401-21-1 NIOThread@2 ERROR ADAPTORS.HTTP.FLOW - RequestWriteListener.onTimeout() : RequestWriteListener.onTimeout(HTTPRequest@6b393600)
      
    2. java.net.ConnectException: Connection rejected (Bağlantı reddedildi) hatası, bağlantıyı belirtir , arka uç sunucusu tarafından reddedildi.
      14:40:16.531 +0530
      2016-06-17 09:10:16,531 org:myorg env:prod api:www.abc.com rev:1 rrt07eadn-22739-40983870-15 NIOThread@2 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() : connect to www.abc.com:11.11.11.11:443 failed with exception {}
      java.net.ConnectException: Connection refused
      at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) ~[na:1.7.0_75]
      at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:739) ~[na:1.7.0_75]
      at com.apigee.nio.ClientChannel.finishConnect(ClientChannel.java:121) ~[nio-1.0.0.jar:na]
      at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:108) ~[nio-1.0.0.jar:na]
      
  3. Her bir telnet komutunu kullanarak mesaj işleyenler:
    1. Arka uç sunucusu tek bir IP adresine çözümlenirse aşağıdaki komutu kullanın:
      telnet BackendServer-IPaddress 443
                
      .
    2. Arka uç sunucusu birden fazla IP adresine çözümlenirse ana makine adını kullanın arka uç sunucusuna aşağıda gösterildiği gibi telnet komutu ekler:
      telnet BackendServer-HostName 443
                
  4. Arka uç sunucusuna bağlanabiliyorsanız Connected to backend-server gibi bir mesaj görebilirsiniz. Arka uç sunucusuna bağlanamıyorsanız bunun nedeni aşağıdakilerden biri olabilir: çünkü Mesaj İşleyicilerin IP adresleri belirli arka uçta izin verilenler listesinde değil sunucu.

Çözünürlük

İzin vermek için, belirli arka uç sunucusunda Mesaj İşleyici'nin IP adreslerine erişim verin arka uç sunucunuza erişmek için uç mesaj işlemcilerinin trafiğini artırır. Örneğin, Linux'ta, İleti İşleyen'in IP adreslerinden gelen trafiğe izin vermek için iptables arka uç sunucusunda depolanıyor.

Sorun devam ederse, ağ yöneticinizle birlikte çalışarak . Apigee'den daha fazla yardıma ihtiyacınız olursa Apigee Destek Ekibi ile iletişime geçin.

Yanlış hedef sunucu ana makine adı

Teşhis

Hedef sunucuda belirtilen ana makine adı yanlışsa hata koduyla birlikte 503 Hizmet Kullanılamıyor yanıtını alabilirsiniz messaging.adaptors.http.flow.ServiceUnavailable.

İzleme aracı

İzleme aracını kullanarak teşhis etmek için:

  1. Sorun hâlâ devam ediyorsa etkilenen API için izleme oturumunu etkinleştirin.
  2. API çağrısında bulunun ve sorunu yeniden oluşturun: 503 Hizmet Kullanılamıyor durumu (messaging.adaptors.http.flow.ServiceUnavailable. hata koduyla)
  3. Başarısız isteklerden birini seçin.
  4. İzlemenin çeşitli aşamaları arasında gezinin ve hatanın nerede oluştuğunu bulun.
  5. Hatanın bulunduğu FlowInfo'yu seçin. error.cause alanında, aşağıdaki örnekte gösterildiği gibi hatanın nedenini size bildirebilecek daha fazla bilgi bulabilirsiniz:

    İzde error.cause öğesini gösteren örnek istek

    İzde error.cause öğesini gösteren örnek istek
  6. error.cause alanında Ana makineye erişilemiyor mesajının gösterildiğini fark ederseniz hatanın olası nedeni aşağıdakilerden biridir:
    • Hedef sunucu/hedef uç nokta yapılandırmasında belirtilen ana makine adı yanlış veya istenmeyen alan ya da özel karakterler içeriyor.

      Örneğin, ana makine adında aşağıda gösterildiği gibi istenmeyen bir alan vardır:
      "demo-target.apigee.net "
                        
    • API Proxy'sinde AssignmentMessage veya target.url değişkeninin üzerine yazılan ana makine adı JavaScript politikası yanlış veya boşluk ya da istenmeyen başka özel karakterler içeriyor.
  7. Hedef sunucu ana makine adının yanlış olup olmadığını veya istenmeyen alan ya da özel karakterler içerip içermediğini görmek için hedef uç nokta yapılandırmasını ve/veya hedef sunucu tanımını kontrol edin.
  8. Hedef sunucu ana makinesi dinamik olarak oluşturulduysa oluşturmak için kullanılan uygun politikayı (ör. assignMessage/JavaScript politikası) kontrol edin. Kontrol etme hedefi hedef sunucunun ana makine adının yanlış olup olmadığını veya istenmeyen boşluk ya da özel karakterler içerip içermediğini kontrol edin.
  9. Hedef sunucu ana makine adını belirledikten sonra, sorunun çözülüp çözülmediğini görmek için ana makine adında nslookup/dig komutunu çalıştırın.

    Örneğin, ana makine adında nslookup komutunu istenmeyen bir boşlukla çalıştırmak aşağıdaki çıkışı döndürür:

    nslookup "demo-target.apigee.net "
    Server:	49.205.75.2
    Address:	49.205.75.2#53
    
    ** server can't find demo-target.apigee.net\032: NXDOMAIN
    
    .
  10. nslookup işletim sistemi komutu da ana makine adını çözemezse bu sorunun nedeni hedef sunucu için kullanılan yanlış ana makine adıdır.

    Çözünürlük'e gidin.

Mesaj işlemci günlükleri

Mesaj işlemci günlüklerini kullanarak teşhis etmek için:

  1. Başarısız isteğin mesaj kimliğini belirleyin.
  2. İleti İşleyen günlüğünde ileti kimliğini arayın. (/opt/apigee/var/log/edge-message-processor/logs/system.log)
  3. Aşağıdaki uyarı/hata mesajlarını görüyorsanız İleti İşleyici, ana makine adını çözümleyemedi. İleti erteleneceği için bu mesajı göremeyebilirsiniz uyarı mesajı gönderin.
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 WARN S.HTTPCLIENTSERVICE - DNSCache$2.failed() : Failed to resolve hostname www.somehost.com . Reason mocktarget.apigee.net : Name or service not known. This log message will snooze for 2 hours
        
  4. Bunun ardından bir uyarı mesajı gösterilir. Bu mesajda, hedef sunucu ana makinesine ulaşılamadığından Mesaj İşleyici bu adresi DNS önbelleğinden kaldırır.
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid> NIOThread@0 WARN  c.a.p.h.d.DNSCachedAddress - DNSCachedAddress.addressNotReachable() : The last address has been removed from Address list null refreshing
        
  5. Bu durumda, "Ana makineye erişilemiyor" istisnasıyla Mesaj İşleyici'nin başarısız olduğunu belirten bir mesaj görebilirsiniz. Bazen hata mesajının bir parçası olarak ana makine adı gösterilir:
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to demo-target.apigee.net  failed with exception {}
    java.lang.RuntimeException: Host not reachable
    	at com.apigee.protocol.http.HTTPClient$Context.initConnect(HTTPClient.java:704)
    	at com.apigee.protocol.http.HTTPClient$Context.send(HTTPClient.java:675)
    	at com.apigee.messaging.adaptors.http.flow.data.TargetRequestSender.sendRequest(TargetRequestSender.java:234)
    	…<snipped>
        
    .
  6. Ana makine adı aşağıda gösterildiği gibi çözümlenemediği veya bu ada erişilebildiği için bazen null olarak gösterilebilir:
    org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to null failed with exception {}
    java.lang.RuntimeException: Host not reachable
    	at com.apigee.protocol.http.HTTPClient$Context.initConnect(HTTPClient.java:704)
    	at com.apigee.protocol.http.HTTPClient$Context.send(HTTPClient.java:675)
    	at com.apigee.messaging.adaptors.http.flow.data.TargetRequestSender.sendRequest(TargetRequestSender.java:234)
    	…<snipped>
        
  7. Host not reachable hatası genellikle aşağıdaki durumlardan birinde ortaya çıkar:
    • Hedef sunucu/hedef uç nokta yapılandırmasında belirtilen ana makine adı yanlış veya istenmeyen alan ya da özel karakterler içeriyor.

      Örneğin, "demo-target.Apigee.net " ana makine adında istenmeyen bir boşluk vardır şu hata mesajıyla değiştirin:
      NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to demo-target.apigee.net  failed with exception
              
    • assignMessage veya JavaScript politikası kullanılarak API Proxy'sinde target.url değişkeni tarafından üzerine yazılan ana makine adı yanlıştır veya boşluk ya da istenmeyen başka özel karakterler içeriyordur.
  8. Aşağıdakilerden birini kullanarak Mesaj İşleyici'nin iletişim kurmaya çalıştığı hedef sunucu ana makine adını belirleyin:
    1. Host not reachable ifadesini içeren hata mesajını dikkatlice inceleyin.
    2. Hata mesajında ana makine adı gösteriliyorsa boşluk veya özel karakterlerle birlikte ana makine adını kopyalayın.
    3. Hata mesajında, aşağıdaki hata mesajında görüldüğü gibi ana makine adı için boş değeri gösteriliyorsa
      org:myorg env:prod api:TestTargetServer rev:2 messageid:<messageid>  NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context.onConnectFailure() :  connect to null failed with exception {}
              
      1. Başarısız olan API Proxy'sinde kullanılan hedef sunucu tanımını kontrol ederek ana makine adını belirleyin.
      2. Hedef sunucu ana makinesi dinamik olarak oluşturulduysa oluşturmak için kullanılan uygun politikayı (örneğin, assignMessage/JavaScript politikası) kontrol edin.
  9. Hedef sunucu ana makine adını belirledikten sonra, ana makine adında nslookup/dig komutunu çalıştırın ve sorunun çözülüp çözülmediğine bakın.

    Örneğin, boşluk içeren ana makine adında nslookup komutunu çalıştırın

    nslookup "demo-target.apigee.net "
    Server:	49.205.75.2
    Address:	49.205.75.2#53
    
    ** server can't find demo-target.apigee.net\032: NXDOMAIN
          
    .
  10. nslookup işletim sistemi komutu da ana makine adını çözemezse bu sorunun nedeni hedef sunucu için kullanılan yanlış ana makine adıdır.

Çözünürlük

  1. Hedef uç nokta yapılandırmasında veya hedef sunucuda belirtilen hedef sunucu ana makine adının doğru olmalı ve istenmeyen boşluk veya özel karakter içermemelidir.
  2. Hedef sunucu ana makine adını dinamik olarak oluşturmak için herhangi bir AssignmentMessage/JavaScript politikası kullanıyorsanız politika tanımını ve kodu inceleyin ve hedef sunucu ana makine adının doğru şekilde oluşturulduğundan emin olun.

SSL el sıkışma hataları

Sorun giderme başucu kitabının tamamı TLS/SSL el sıkışma hatalarına ayrılmıştır. SSL El Sıkışma Hataları başlıklı makaleye göz atın.

Sorunun kaynağını belirlemek

Gelen (kuzeyye) veya giden (güne doğru) yolda belirli türlerde hatalar oluşabilir bağlantı. İstemci uygulaması ile Edge arasında gelen (kuzeyye doğru) bir hata oluşur. Edge ile arka uç hedef sunucusu arasında giden (güneye giden) bir hata oluşur. Bunları teşhis etmek için tespit etmek istiyorsanız ilk işiniz hatanın kuzey sınırında mı yoksa yönünde güneye doğru bağlantısıdır.

Kuzeye ve güneye giden bağlantıları anlama

Edge'de, gelen veya giden bağlantıda 503 Hizmet Kullanılamıyor hatasıyla karşılaşabilirsiniz:

  • Gelen (veya kuzeye giden) bağlantı: İstemci ile iki hususu vardır. Yönlendirici, Apigee Edge'in şunları içeren bileşenidir: taleplerinin sisteme gelmesine yardımcı olur.
  • Giden (veya güneye giden) bağlantı: Edge ile Mesaj İşleyici ve arka uç sunucusu. Mesaj işlemcisi, Apigee Edge'in bir bileşenidir bu proxy API'nin arka uç hedef sunucularına gönderilmesini sağlar.

Edge Herkese Açık Bulut kullanıcısıysanız büyük olasılıkla arasında bağlantı kurulur. Bu dahili bileşenleri görülemez veya bu bileşenlere erişilemez. Herkese açık Cloud kullanıcıları. Mümkün olduğunda, bu bileşenlere doğrudan erişim gerektirmez.

Aşağıdaki şekilde, Apigee için kuzeye ve güneye bağlantılar gösterilmektedir Kenar.

İstemci uygulamasının (kuzey bağlantısı) Uçtan arka uç sunucusuna akışı (güneye giden bağlantı)

503 Hizmet Kullanılamıyor hatasının nerede oluştuğunu belirleme

503 Hizmet Kullanılamıyor hatasının oluşup oluşmadığını belirlemek için aşağıdaki yordamlardan birini kullanın kuzeye ya da güneye giden bağlantıda.

kullanıcı arayüzü izleme

UI Trace kullanarak hatanın nerede oluştuğunu belirlemek için:

  1. Sorun hâlâ devam ediyorsa etkilenen API için kullanıcı arayüzü izlemeyi etkinleştirin.
  2. Başarısız API isteğinin kullanıcı arayüzü izlemesinde, 503 Hizmet Kullanılamıyor hatası gösteriliyorsa hedef istek akışında gerçekleşirse veya arka uç sunucusu tarafından gönderilirse sorun Güneye giden (yani İleti İşleyen ile arka uç arasında sunucu).
  3. Belirli API çağrısına ait izleme kodunu almıyorsanız sorun kuzeyinde, istemci uygulaması ile Yönlendirici arasında bulunur.

API izleme

API İzleme; hata, performans, gecikme sorunlarını ve bunların kaynağını teşhis etmek için sorunlu alanları hızlı bir şekilde izole etmenizi sağlar. hedef URL'ler veya API platformu gibi farklı biçimlere sahip olur.

API Monitoring'i kullanarak API'lerinizle ilgili 5xx sorunlarını nasıl gidereceğinizi gösteren örnek bir senaryoyu inceleyin. Örneğin, messaging.adaptors.http.flow.ServiceUnavailable hata sayısı belirli bir eşiği aştığında bildirim almak için bir uyarı oluşturabilirsiniz.

NGINX erişim günlükleri

UI Trace kullanarak hatanın nerede oluştuğunu belirlemek için:

Sorun geçmişte ortaya çıktıysa veya zaman zaman ortaya çıkıyorsa ve izini yakalayın ve ardından aşağıdaki adımları uygulayın:

  1. NGINX erişim günlüklerini kontrol edin (/opt/apigee/var/log/edge-router/nginx/ org-env.port_access_log ).
  2. Belirli API proxy'si için 503 hatası olup olmadığını arayın.
  3. Belirli bir API için o anda herhangi bir 503 hatasını tespit ederseniz Güneye giden bağlantıda ortaya çıktı (İleti İşleyici ile arka uç sunucusuna eklenmelidir).
  4. Aksi halde sorun kuzey yönlü bağlantıda oluşmuştur ( arasında geçiş yapın.