Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Apigee Edge, yük için yerleşik destek sağlayarak API'nizin kullanılabilirliğini artırır birden fazla arka uç sunucu örneği arasında dengeleme ve yük devretme
TargetServer yapılandırmaları, somut uç nokta URL'lerini TargetEndpoint'ten ayırır yapılandırmanın üç yolu vardır. Her TargetServer'a bir TargetEndpoint'in adı gönderilir. HTTPConnection (Bağlantı Kurma) seçeneğini tıklayın. Yapılandırmada somut bir URL tanımlamak yerine, bölümünde açıklandığı gibi, daha fazla adlandırılmış TargetServers TargetEndpoint (Hedef Uç Noktası) öğesini seçin.
TargetServer tanımı bir ad, bir ana makine ve bir bağlantı noktasından oluşur. Bağlantı noktası; şunları yapar: TargetServer'ın etkin mi yoksa devre dışı mı olduğunu belirtin.
Videolar
Hedef kitle kullanarak API yönlendirmesi ve yük dengeleme hakkında daha fazla bilgi edinmek için aşağıdaki videoları izleyin: sunucular
Video | Açıklama |
---|---|
Yük dengeleme hedef sunucuları kullanma | Hedef sunucularda yük dengeleme API'leri. |
API yönlendirmesine dayalı ortamda çalıştırma | Bir API'yi ortama bağlı olarak farklı bir hedef sunucuya yönlendirin. |
API yönlendirmesi ve Hedef sunucuları kullanarak yük dengeleme (Klasik Edge) | Bir API'yi ortama ve yük dengesine göre farklı bir hedef sunucuya yönlendirin API'nizin klasik Edge kullanıcı arayüzündeki hedef sunucularda nasıl görüneceğini kontrol edin. |
Örnek TargetServer Yapılandırması
Aşağıdaki kod bir hedef sunucuyu tanımlar:
<TargetServer name="target1"> <Host>1.mybackendservice.com</Host> <Port>80</Port> <IsEnabled>true</IsEnabled> </TargetServer >
TargetServer Yapılandırma Öğeleri
Aşağıdaki tabloda TargetServer'ı oluşturmak ve yapılandırmak için kullanılan öğeler açıklanmaktadır:
Ad | Açıklama | Varsayılan | Zorunlu mu? |
---|---|---|---|
name |
bahsedeceğim. TargetServer adı yalnızca alfanümerik karakterler içerebilir. | Yok | Evet |
Host |
Arka uç hizmetinin ana makine URL'si (protokol olmadan). | Yok | Evet |
Port |
Arka uç hizmetinin dinlediği bağlantı noktası | Yok | Evet |
IsEnabled |
TargetServer yapılandırmasının etkin mi yoksa devre dışı mı olduğunu gösteren boole değeri. Bu, API proxy'sini değiştirmeden TargetServers'ları rotasyondan çıkarmanıza olanak tanır. yapılandırma. Yaygın olarak kullanılan bir başka kullanım şekli de, işlevi etkinleştiren veya devre dışı bırakan bir uygulama veya komut dosyası yazmaktır TargetServers'ı beklenen kapasite gereksinimlerine, bakım planlarına, vb. | true |
Evet |
Kullanıcı arayüzünü kullanarak hedef sunucuları yönetme
Hedef sunucuları aşağıda açıklandığı şekilde yönetin.
Edge
Edge kullanıcı arayüzünü kullanarak hedef sunucuları yönetmek için:
- apigee.com/edge adresinde oturum açın.
- Yönetici > Ortamlar > Target Servers'ı (Hedef Sunucular) tıklayın.
- Örneğin, test veya prod.
- Hedef sunucu oluşturmak için:
- + Hedef sunucu'yu tıklayın.
- Hedef sunucu için bir ad, ana makine ve bağlantı noktası girin.
Örneğin:
- Ad: target1
- Host (Ana makine): 1.mybackendservice.com
- Bağlantı Noktası: 80
- Gerekirse SSL'yi seçin.
- Hedef sunucuyu etkinleştirmek için Etkin'i seçin.
- Ekle'yi tıklayın.
- Hedef sunucuyu düzenlemek için:
- İşlemler menüsünü görüntülemek için imlecinizi düzenlemek istediğiniz hedef sunucunun üzerine getirin.
- simgesini tıklayın.
- Hedef sunucu değerlerini düzenleyin.
- Güncelle'yi tıklayın.
- Hedef sunucuyu silmek için:
- İşlemler menüsünü görüntülemek için imlecinizi silmek istediğiniz hedef sunucunun üzerine getirin.
- simgesini tıklayın.
- İşlemi onaylamak için Sil'i tıklayın.
Klasik Edge (Private Cloud)
Klasik Edge kullanıcı arayüzünü kullanarak Proxy Oluşturma sihirbazına erişmek için:
- ms-ip olan
http://ms-ip:9000
uygulamasında oturum açın Yönetim Sunucusu düğümünün IP adresi veya DNS adı. - API'ler > Ortam Yapılandırması > Target Servers'ı (Hedef Sunucular) tıklayın.
- Örneğin, test veya prod.
- Hedef sunucu oluşturmak için:
- Düzenle'yi tıklayın.
- + Hedef sunucu'yu tıklayın.
- Hedef sunucu için bir ad, ana makine ve bağlantı noktası girin.
Örneğin:
- Ad: target1
- Host (Ana makine): 1.mybackendservice.com
- Bağlantı Noktası: 80
- Hedef sunucuyu etkinleştirmek için Etkin'i seçin.
- Kaydet'i tıklayın.
- Hedef sunucuyu düzenlemek için:
- Düzenle'yi tıklayın.
- Hedef sunucu değerlerini düzenleyin.
- Kaydet'i tıklayın.
- Hedef sunucuyu silmek için:
- Düzenle'yi tıklayın.
- Sil'i tıklayın.
API'yi kullanarak hedef sunucuları yönetme
Hedef sunucuları oluşturmak, silmek, güncellemek, almak ve listelemek için Edge API'yi kullanabilirsiniz. Örneğin, Daha fazla bilgi için TargetServers'a bakın.
Hedef sunucu oluşturmak için aşağıdaki API çağrısını kullanın:
$ curl -H "Content-Type:text/xml" -X POST -d \ '<TargetServer name="target1"> <Host>1.mybackendservice.com</Host> <Port>80</Port> <IsEnabled>true</IsEnabled> </TargetServer>' \ -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/environments/test/targetservers
Örnek Yanıt:
{ "host" : "1.mybackendservice.com", "isEnabled" : true, "name" : "target1", "port" : 80 }
İlk TargetServer'ı oluşturduktan sonra, ikinci bir TargetServer oluşturmak için aşağıdaki API çağrısını kullanın. İki TargetServer tanımlayarak, bir TargetEndpoint'in yük dengeleme için kullanabileceği iki URL sağlarsınız:
$ curl -H "Content-type:text/xml" -X POST -d \ '<TargetServer name="target2"> <Host>2.mybackendservice.com</Host> <Port>80</Port> <IsEnabled>true</IsEnabled> </TargetServer >' \ -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/environments/test/targetservers
Örnek Yanıt:
{ "host" : "2.mybackendservice.com", "isEnabled" : true, "name" : "target2", "port" : 80 }
Bir ortamdaki TargetServer'ların listesini almak için aşağıdaki API çağrısını kullanın:
$ curl -u email:password https://api.enterprise.apigee.com/v1/o/{org_name}/environments/test/targetservers
Örnek yanıt:
[ "target2", "target1" ]
Artık testte dağıtılan API proxy'leri tarafından kullanılabilecek iki TargetServer var bahsedeceğim. Bu TargetServer'lar arasında trafiğin yük dengelemesi için HTTP API proxy'sinin hedef uç noktasındaki hedef uç noktasından bağlanmalıdır.
Ortam başına 500 TargetServer sınırı vardır, Sınırlar konusunda açıklanmaktadır.
Bir Adlandırılmış TargetServer'lar arasında yük dengelemek için TargetEndpoint
İki TargetServer'ınız olduğuna göre artık TargetEndpoint HTTP bağlantı ayarını kullanarak bu iki TargetServer'a (hedef sunucuya isme göre) referans gösterin:
<TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
Yukarıdaki yapılandırma, mümkün olan en temel yük dengeleme yapılandırmasıdır. Yük Dengeleyici üç tane yük dengeleme algoritmasını destekler: Döngüsel, Ağırlıklı ve En Az Bağlantı. Gruplama varsayılan algoritmadır. Yukarıdaki yapılandırmada algoritma belirtilmediğinden, API proxy'sinden arka uç sunucularına giden istekler, biri için bir tane olmak üzere hedef 1 ve hedef 2'dir.
<Path>
öğesi, şunun için TargetEndpoint URI'sinin temel yolunu oluşturur
tüm hedef sunucularda çalışır. Yalnızca <LoadBalancer>
kullanıldığında kullanılır. Aksi halde
yok sayılır. Yukarıdaki örnekte "target1" hedefine ulaşan bir istek olacak
http://target1/test
vb.
Yük dengeleyici seçeneklerini ayarlama
Yük sırasında yük dengeleme ve yük devretme seçeneklerini kullanarak kullanılabilirliği ayarlayabilirsiniz ve TargetServer seviyesinden erişebilirsiniz. Bu bölümde bu seçenekler açıklanmaktadır.
Algoritma
<LoadBalancer>
tarafından kullanılan algoritmayı ayarlar. Mevcut
RoundRobin
, Weighted
ve LeastConnections
,
Her biri aşağıda açıklanmıştır.
Çevrimsel sıralı
Varsayılan algoritma olan çevrimli sıralı, bir isteği her bir TargetServer'a Hedef uç nokta HTTP bağlantısında sunucuların listelendiği. Örneğin:
<TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <Algorithm>RoundRobin</Algorithm> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
Ağırlıklı
Ağırlıklı yük dengeleme algoritması, yüksek dönüşüm hacmi için orantısal trafik yüklemelerini
sunucularınızı kontrol etmeniz gerekir. Ağırlıklı LoadBalancer, isteği doğrudan TargetServer'larınıza dağıtır
her TargetServer'ın ağırlığıyla orantılı hale gelecektir. Bu nedenle, ağırlıklı algoritma, videonuzun
Her TargetServer için bir weight
özelliği. Örneğin:
<TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <Algorithm>Weighted</Algorithm> <Server name="target1"> <Weight>1</Weight> </Server> <Server name="target2"> <Weight>2</Weight> </Server> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
Bu örnekte, iki istek, hedef1.
En Az Bağlantı
En az bağlantı algoritmasını kullanacak şekilde yapılandırılan LoadBalancer'lar, giden istekleri En az açık HTTP bağlantısına sahip TargetServer. Örneğin:
<TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <Algorithm>LeastConnections</Algorithm> <Server name="target1" /> <Server name="target2" /> </LoadBalancer> </HTTPTargetConnection> <Path>/test</Path> </TargetEndpoint>
Maksimum hata sayısı
API proxy'sinden TargetServer'a yapılan ve ile sonuçlanan maksimum başarısız istek sayısı isteğin başka bir TargetServer'a yönlendirilmesidir.
Yanıt hatası, Apigee'nin hedef sunucudan hiç yanıt almadığı anlamına gelir. Zaman bu durumda hata sayacı bir birim artar.
Ancak Apigee, hedeften yanıt aldığında
yanıt bir HTTP hatası (500
gibi) olsa bile
çalışır ve hata sayacı sıfırlanır. Kötü HTTP yanıtlarının
(500
gibi) kötü durumdaki bir sunucuyu çıkarmak için hata sayacını da artırır
en kısa sürede değiştirmek isterseniz
<ResponseCode>
içeren <ServerUnhealthyResponse>
öğesi
alt öğeleri eklemeniz gerekir. Edge, bunlarla ilişkili yanıtları da
hata olarak kabul eder.
Aşağıdaki örnekte, target1
beş saniye sonra rotasyondan kaldırılacaktır
hedef sunucudan gelen bazı 5XX
yanıtları dahil olmak üzere başarısız istek sayısı.
<TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <Algorithm>RoundRobin</Algorithm> <Server name="target1" /> <Server name="target2" /> <MaxFailures>5</MaxFailures> <ServerUnhealthyResponse> <ResponseCode>500</ResponseCode> <ResponseCode>502</ResponseCode> <ResponseCode>503</ResponseCode> </ServerUnhealthyResponse> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
MaxFailures'un varsayılan değeri 0'dır. Bu, Edge'in her zaman her istek için hedefe bağlanır ve hedef sunucuyu rotasyondan hiçbir zaman kaldırmaz.
En iyi seçenek MaxFailures > 0 olarak ayarlayın. MaxFailures > 0, TargetServer rotasyondan kaldırılır hedef, belirttiğiniz sayıda başarısız olduğunda. Bir HealthMonitor etkin olduğunda Apigee, Hedefe göre hedef yeniden çalışır duruma geldikten sonra TargetServer tekrar rotasyona alınır. yapılandırmasını ifade eder. Sağlık izleme başlıklı makaleyi inceleyin konulu videomuzu izleyin.
Alternatif olarak MaxFailures > 0 olarak çalışır ve HealthMonitor, Apigee, TargetServer'ı rotasyona yeniden dahil etmeyecektir otomatik olarak devreye girer. Bu durumda, Apigee, TargetServer'ı tekrar yerleştirmeden önce API proxy'sini sağlayabilir. Görüntüleyin API proxy'si dağıtma.
Yeniden dene
Yeniden deneme etkinleştirilirse her yanıt hatası (G/Ç hatası veya HTTP zaman aşımı) her seferinde istek yeniden denenir
olur veya alınan yanıt <ServerUnhealthyResponse>
tarafından ayarlanan bir değerle eşleşir.
Ayar hakkında daha fazla bilgi için yukarıdaki Maksimum hata sayısı bölümüne bakın
<ServerUnhealthyResponse>
.
<RetryEnabled>
varsayılan olarak true
değerine ayarlıdır. Yeniden denemeyi devre dışı bırakmak için ayarı false
olarak ayarlayın.
Örneğin:
<RetryEnabled>false</RetryEnabled>
IsFallback
Bir (yalnızca bir) TargetServer "yedek" olarak ayarlanabilir sunucu. Yedek TargetServer diğer tüm TargetServer'lar aşağıdaki şekilde tanımlanana kadar yük dengeleme rutinlerine dahil edilmez: yük dengeleyici tarafından kullanılamaz. Yük dengeleyici tüm TargetServer'ların mevcut değilse tüm trafik yedek sunucuya yönlendirilir. Örneğin:
<TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <Algorithm>RoundRobin</Algorithm> <Server name="target1" /> <Server name="target2" /> <Server name="target3"> <IsFallback>true</IsFallback> </Server> </LoadBalancer> <Path>/test</Path> </HTTPTargetConnection> </TargetEndpoint>
Yukarıdaki yapılandırma, hedef 1 ve 2 arasında döngülü yük dengelemesi yapılmasını sağlar. hem 1 hem de 2 mevcut değil. Hedef 1 ve 2 kullanılamadığında tüm trafik yönlendirilir 3 olarak ayarlayın.
Path
Yol, TargetServer tarafından yayınlanan tüm isteklere eklenecek bir URI parçası tanımlar. arka uç sunucusuna gönderilir.
Bu öğe, düz bir dize yolunu veya mesaj şablonunu kabul eder. Mesaj
şablonu, çalışma zamanında değişken dizesi değişikliği yapmanıza olanak tanır.
Örneğin, aşağıdaki hedef uç nokta tanımında yol için {mypath}
değeri kullanılır:
<HTTPTargetConnection> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> <LoadBalancer> <Server name="testserver"/> </LoadBalancer> <Path>{mypath}</Path> </HTTPTargetConnection>
Şunun için hedef sunucu yapılandırma: TLS/SSL
Arka uç hizmetini ve arka uç hizmetini tanımlamak için TargetServer kullanıyorsanız
HTTPS protokolünü kullanmak için bağlantıyı gerektiriyorsa,
TargetServer tanımı. Bu gereklidir çünkü <Host>
etiketi şunları yapmanıza izin vermez:
bağlantı protokolünü belirtir. Aşağıda, tek yönlü için TargetServer tanımı verilmiştir
Edge'in arka uç hizmetine HTTPS istekleri yaptığı TLS/SSL:
<TargetServer name="target1"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer>
Arka uç hizmeti iki yönlü veya karşılıklı TLS/SSL gerektiriyorsa TargetEndpoints ile aynı TLS/SSL yapılandırma ayarlarını kullanarak TargetServer'ı yapılandırın:
<TargetServer name="TargetServer 1"> <IsEnabled>true</IsEnabled> <Host>www.example.com</Host> <Port>443</Port> <SSLInfo> <Ciphers/> <ClientAuthEnabled>true</ClientAuthEnabled> <Enabled>true</Enabled> <IgnoreValidationErrors>false</IgnoreValidationErrors> <KeyAlias>keystore-alias</KeyAlias> <KeyStore>keystore-name</KeyStore> <Protocols/> <TrustStore>truststore-name</TrustStore> </SSLInfo> </TargetServer >
<SSLInfo>
özellikleri hakkında bilgi için
<Ciphers>
ve <ClientAuthEnabled>
, bkz.
API'ye TLS erişimini yapılandırma başlıklı makalede Sanal Ana Makine için bu özellikleri ayarlama hakkında bilgi
inceleyin.
Giden TLS/SSL'nin yapılandırılmasına ilişkin talimatların tamamı için TLS'yi Yapılandırma uçtan uca (Bulut ve Private Cloud).
TargetServer şeması
üzerinde TargetServer ve diğer varlıkların şemasına bakın GitHub'ı tıklayın.
Sağlık durumu izleme
Durum izleme, TargetServer yapılandırmalarında tanımlanan arka uç hizmet URL'leri. Sağlık takibi etkinleştirildiğinde, HealthMonitor uygulaması tarafından belirlenen başarısız bir TargetServer otomatik olarak rotasyona TargetServer'ın etkin olduğundan emin olun.
Sağlık durumu izleme, <MaxFailures>
ile çalışır. Sağlık durumu izleme
etkin değilken
<MaxFailures>
, API proxy'sinden
İsteğin başka bir TargetServer'a yönlendirilmesine neden olan TargetServer.
Ardından, başarısız olan TargetServer, siz proxy'yi yeniden dağıtana kadar rotasyondan çıkarılır.
Durum izleme etkinken, başarısız olan bir TargetServer otomatik olarak rotasyona alınır ve proxy kullanılmaz Yeniden dağıtım gereklidir.
HealthMonitor, TCP veya HTTP üzerinden bir arka uç hizmetini çağıran basit bir istemci görevi görür:
- TCP istemcisi yalnızca bir yuvanın açılabilmesini sağlar.
- HTTP istemcisini arka uç hizmetine geçerli bir HTTP isteği gönderecek şekilde yapılandırırsınız. Siz
HTTP GET, PUT, POST veya DELETE işlemlerini tanımlayabilir. HTTP izleme çağrısının yanıtı,
<SuccessResponse>
bloğundaki yapılandırılmış ayarlar.
Başarılar ve başarısızlıklar
Durum izlemeyi etkinleştirdiğinizde Edge, hedefinize durum denetimleri göndermeye başlar sunucu. Durum denetimi, hedef sunucuya gönderilen ve iyi olup olmadığını kontrol edin.
Durum denetiminde iki olası sonuçtan biri gösterilebilir:
- Başarılı: Başarılı bir durum başarılı olduğunda, hedef sunucunun iyi durumda olduğu kabul edilir.
kontrol edilir. Bu durum genellikle aşağıdakilerden birinin veya daha fazlasının bir sonucudur:
- Hedef sunucu, belirtilen bağlantı noktasına yeni bir bağlantıyı kabul eder, bu bağlantı noktasındaki bir isteğe yanıt verir ve ardından belirtilen zaman aralığı içinde bağlantı noktasını kapatır. Hedef sunucunun yanıtı "Connection: close" ifadesini içerir.
- Hedef sunucu, durum denetimi isteğine 200 (Başarılı) veya kabul edilebilir olduğunu belirlediğiniz başka bir HTTP durum koduyla yanıt verir.
- Hedef sunucu, beklenen ileti gövdesiyle eşleşen bir ileti gövdesiyle durum denetimi isteğine yanıt verir.
Edge, bir sunucunun iyi durumda olduğunu belirlediğinde, Edge o sunucuya istek göndermeye devam eder veya devam eder.
- Hata: Hedef sunucu, durum denetiminde farklı şekillerde başarısız olabilir.
değişebilmektedir. Hedef sunucu aşağıdaki işlemleri gerçekleştirdiğinde hata günlüğe kaydedilebilir:
- Edge'den durum denetimi bağlantı noktasına olan bağlantıyı reddeder.
- Belirli bir süre içinde durum denetimi isteğine yanıt vermez.
- Beklenmeyen bir HTTP durum kodu döndürür.
- Beklenen ileti gövdesiyle eşleşmeyen bir ileti gövdesiyle yanıt veriyor.
Hedef sunucu durum denetiminde başarısız olursa Edge o sunucunun hata sayısını artırır. Eğer Söz konusu sunucunun önceden tanımlanmış bir eşiği karşıladığı veya aştığı hata sayısı (
<MaxFailures>
) ayarlanırsa Edge, bu sunucuya istek göndermeyi durdurur.
HealthMonitor'ü Etkinleştirme
HealthMonitor oluşturmak için TargetEndpoint'in HTTPConnection'a <HealthMonitor>
öğesini ekleyin
yapılandırmanın ne kadar önemli olduğu. Bunu kullanıcı arayüzünde yapamazsınız. Bunun yerine bir proxy yapılandırması oluşturup
dosyayı Edge'e ZIP dosyası olarak yükleyin. Proxy yapılandırması tüm özelliklerin
örneğidir. Proxy yapılandırmaları, önceden tanımlanmış dizin yapısındaki XML dosyalarından oluşur. Daha fazla
daha fazla bilgi için API Proxy'si
Yapılandırma Referansı.
Basit bir HealthMonitor, yaIntervalInSec
TCPMonitor veya HTTPMonitor. <MaxFailures>
öğesi, maksimum değeri belirtir
API proxy'sinden TargetServer'a yapılan ve istekle sonuçlanan başarısız isteklerin sayısı
başka bir TargetServer'a yönlendirilmek. <MaxFailures>
varsayılan olarak 0'dır. Bu, şu anlama gelir:
Edge herhangi bir düzeltme işlemi yapmaz. Durum izleyicisini yapılandırırken, şunları ayarladığınızdan emin olun:
<MaxFailures>
<HTTPTargetConnection>
etiket
<TargetEndpoint>
etiketi
sıfır olmayan bir değere ayarlayacağız.
TCPMonitor
Aşağıdaki yapılandırmada, bir her beş saniyede bir 80 numaralı bağlantı noktasından bağlanıyor. (Bağlantı noktası isteğe bağlıdır. Belirtilmezse TCPMonitor bağlantı noktası TargetServer bağlantı noktasıdır.)
- Bağlantı kurulamazsa veya bağlanması 10 saniyeden uzun sürerse hata sayısı o TargetServer için 1 artar.
- Bağlantı başarılı olursa TargetServer'ın hata sayısı 0'a sıfırlanır.
HealthMonitor'ü TargetEndpoint HTTPTargetConnetion alt öğesi olarak ekleyebilirsiniz. öğesini kullanın:
<TargetEndpoint name="default"> <HTTPTargetConnection> <LoadBalancer> <Algorithm>RoundRobin</Algorithm> <Server name="target1" /> <Server name="target2" /> <MaxFailures>5</MaxFailures> </LoadBalancer> <Path>/test</Path> <HealthMonitor> <IsEnabled>true</IsEnabled> <IntervalInSec>5</IntervalInSec> <TCPMonitor> <ConnectTimeoutInSec>10</ConnectTimeoutInSec> <Port>80</Port> </TCPMonitor> </HealthMonitor> </HTTPTargetConnection> . . .
TCPMonitor yapılandırma öğeleriyle HealthMonitor
Aşağıdaki tabloda TCPMonitor yapılandırma öğeleri açıklanmaktadır:
Ad | Açıklama | Varsayılan | Zorunlu mu? |
---|---|---|---|
IsEnabled |
HealthMonitor'ü etkinleştiren veya devre dışı bırakan bir boole değeri. | false | Hayır |
IntervalInSec |
Her yoklama TCP isteği arasındaki saniye cinsinden zaman aralığı. | 0 | Evet |
ConnectTimeoutInSec |
Bir veri sunucusu olarak kabul edilmesi için TCP bağlantı noktasıyla bağlantının kurulması gereken zaman başarılar. Belirtilen aralıkta bağlantı kurulamaması bir hata olarak sayılır ve yük dengeleyicinin TargetServer için hata sayısı. | 0 | Evet |
Port |
İsteğe bağlı. TCP bağlantısının kurulacağı bağlantı noktası. Belirtilmemişse TCPMonitor bağlantı noktası TargetServer bağlantı noktasıdır. | 0 | Hayır |
HTTPMonitor
HTTPMonitor kullanan bir örnek HealthMonitor, arka uca bir GET isteği gönderir
10 veya 15 saniyede bir. Aşağıdaki örnekte,
istek mesajıyla karşılaşırsınız. Yanıt yapılandırması, gerçek ile karşılaştırılacak ayarları tanımlar
arka uç hizmetinden gelen yanıttır. Aşağıdaki örnekte, beklenen yanıt bir HTTP
yanıt kodu 200
ve değeri şöyle bir özel HTTP üstbilgisi ImOK
YourOK
. Yanıt eşleşmezse istek, başarısız olarak değerlendirilir
yük dengeleyici yapılandırmasına göre değişiyor.
HTTPMonitor, HTTP ve tek yönlü HTTPS kullanacak şekilde yapılandırılan arka uç hizmetlerini destekler. çok önemlidir. Ancak aşağıdakiler desteklenmez:
- İki yönlü HTTPS (iki yönlü TLS/SSL olarak da adlandırılır)
- Kendinden imzalı sertifikalar.
HTTP izleyicisindeki tüm İstek ve Yanıt ayarlarının arka uç hizmeti olabilir.
<HealthMonitor> <IsEnabled>true</IsEnabled> <IntervalInSec>5</IntervalInSec> <HTTPMonitor> <Request> <IsSSL>true</IsSSL> <ConnectTimeoutInSec>10</ConnectTimeoutInSec> <SocketReadTimeoutInSec>30</SocketReadTimeoutInSec> <Port>80</Port> <Verb>GET</Verb> <Path>/healthcheck</Path> <Header name="Authorization">Basic 12e98yfw87etf</Header> <IncludeHealthCheckIdHeader>true</IncludeHealthCheckIdHeader> </Request> <SuccessResponse> <ResponseCode>200</ResponseCode> <Header name="ImOK">YourOK</Header> </SuccessResponse> </HTTPMonitor> </HealthMonitor>
HTTPMonitor yapılandırma öğelerine sahip HealthMonitor
Aşağıdaki tabloda HTTPMonitor yapılandırma öğeleri açıklanmaktadır:
Ad | Açıklama | Varsayılan | Zorunlu mu? |
---|---|---|---|
IsEnabled |
HealthMonitor'ü etkinleştiren veya devre dışı bırakan bir boole değeri. | false | Hayır |
IntervalInSec |
Her yoklama isteği arasındaki saniye cinsinden zaman aralığı. | 0 | Evet |
Request |
HealthMonitor tarafından TargetServers'ı seçin. Yol, değişkenleri desteklemez. |
Yok | Evet |
IsSSL |
Bağlantıları izlemek için HTTPS (güvenli HTTP) kullanılıp kullanılmayacağını belirtir. Potansiyel değerleri:
|
false | Hayır |
ConnectTimeoutInSec |
HTTP hizmetine TCP bağlantısı el sıkışması için gereken süre (saniye cinsinden) kabul edilmesi için tamamlanması gerekir. Belirtilen aralıkta bağlantı kurulamazsa ve TargetServer için LoadBalancer'ın hata sayısı artar. | 0 | Hayır |
SocketReadTimeoutInSec |
Verinin bir sunucu olarak kabul edilmesi için HTTP hizmetinden okunması gereken saniye cinsinden süre başarılar. Belirtilen aralıkta okuma yapılmaması bir hata olarak sayılır ve LoadBalancer'ın TargetServer için hata sayısı. | 0 | Hayır |
Port |
Arka uç hizmetiyle HTTP bağlantısının kurulacağı bağlantı noktası. | Yok | Hayır |
Verb |
Arka uç hizmetine yapılan her yoklama HTTP isteği için kullanılan HTTP fiili . | Yok | Hayır |
Path |
TargetServer'da tanımlanan URL'ye eklenen yol. Şunlar için yol öğesini kullanın: bir "anket uç noktası" yapılandırın HTTP hizmetinizde. | Yok | Hayır |
| Şunları yapmanıza olanak tanır:
kullanarak yukarı akış sistemlerinde durum denetimi isteklerini izleyebilirsiniz. İlgili içeriği oluşturmak için kullanılan
IncludeHealthCheckIdHeader bir Boole değeri alır ve
varsayılan olarak false değerine ayarlanır. Bunu true olarak ayarlarsanız,
X-Apigee-Healthcheck-Id adında bir Header var
Bu,
eklenir. Başlığın değeri
ve dinamik olarak atanır ve
ORG/ENV/SERVER_UUID/N, burada ORG değeri
kuruluş adı; ENV ortam adıdır,
SERVER_UUID, MP'yi tanımlayan benzersiz bir kimliktir ve
N, 1 Ocak 1970 tarihinden itibaren geçen milisaniye sayısıdır.
Sonuçta elde edilen istek başlığı örneği: X-Apigee-Healthcheck-Id: orgname/envname/E8C4D2EE-3A69-428A-8616-030ABDE864E0/1586802968123
|
false | Hayır |
Payload |
Her yoklama HTTP isteği için oluşturulan HTTP gövdesi. Bu öğenin GET istekleri için gereklidir. | Yok | Hayır |
SuccessResponse |
Sorgulanan arka uç tarafından oluşturulan gelen HTTP yanıtı mesajı için eşleşme seçenekleri geliştirmenizi sağlar. Eşleşmeyen yanıtlar hata sayısını 1 artırır. | Yok | Hayır |
ResponseCode |
Sorgulanan TargetServer'dan alınması beklenen HTTP yanıt kodu. Kod belirtilen koddan farklı olması hataya neden olur ve sayı artırılır. arka uç hizmetini sağlar. Birden fazla ResponseCode öğesi tanımlayabilirsiniz. | Yok | Hayır |
Headers |
Sorgulanan kişiden alınması beklenen bir veya daha fazla HTTP üstbilgisinin ve değerinin listesi arka uç hizmetindedir. HTTP üstbilgileri veya yanıttaki onlardan farklı olan değerler bir hataya neden olur ve sorgulanan TargetServer'ın sayısı 1. Birden çok Başlık öğesi tanımlayabilirsiniz. | Yok | Hayır |