Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
API proxy'si, arka uç hizmetlerine bağlanmak için kullanılan istemci uygulamalarına yönelik bir arayüzdür. Apigee Edge, arka uç hizmetlerine API proxy'si üzerinden bağlanmanın çeşitli yollarını sunar:
- HTTP/HTTPs, NodeJS veya Barındırılan Hedef hizmetlerine bağlanmak için "TargetEndpoint"i kullanın.
- Hedef sunucunun çağrılmasından önce veya çağrıldıktan sonra herhangi bir harici hizmeti çağırmak için ServiceReference politikası TargetEndpoint'teki bir öğeyi belirtir.
- Arka uç hizmetlerine bağlanmak için JavaScript politikasına veya JavaAçıklama politikasına özel kod eklendi.
Kalıcı Bağlantılar
HTTP kalıcı bağlantı, HTTP Keep-alive veya HTTP bağlantısının yeniden kullanımı olarak da bilinen, tek bir TCP bağlantısı birden fazla HTTP isteği/yanıtı alabilir, her istek/yanıt çifti için yeni bir bağlantı açmak yerine.
Apigee Edge, arka uç hizmetleriyle iletişim kurmak için kalıcı bağlantı kullanır. Bağlantı durur varsayılan olarak 60 saniye boyunca yayında kalır. Yani bağlantı havuzunda bir bağlantı, 60 saniyeden fazla sürerse bağlantı kapanır.
Canlı tutma zaman aşımı süresi, keepalive.timeout.millis
adlı bir özellik aracılığıyla yapılandırılabilir.
API proxy'sinin TargetEndpoint yapılandırmasında belirtilir. Örneğin, canlı tutma
süre, TargetEndpoint'te belirli bir arka uç hizmeti için 30 saniye olarak belirlenebilir.
Aşağıdaki örnekte keepalive.timeout.millis
, TargetEndpoint öğesinde 30 saniye olarak ayarlanmıştır
yapılandırma:
<!-- /antipatterns/examples/disable-persistent-connections-1.xml --> <TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> </HTTPTargetConnection>Disable HTTP persistent (Reusable keep-alive) connections </TargetEndpoint>
Yukarıdaki örnekte keepalive.timeout.millis
, bir kullanıcı için canlı tutma davranışını kontrol eder.
API proxy'sinde belirli bir arka uç hizmetine erişebilir. Ayrıca canlı tutma davranışını kontrol eden bir mülk de vardır.
tüm proxy'lerdeki arka uç hizmetleri için geçerlidir. HTTPTransport.keepalive.timeout.millis
İleti İşleyici bileşeninde yapılandırılabilir. Bu özelliğin varsayılan değeri de 60'tır.
saniye. Bu mülkte herhangi bir değişiklik yapmak,
Apigee Edge'e ve tüm API proxy'lerinde tüm arka uç hizmetlerine erişebilirsiniz.
Antipattern
keepalive.timeout.millis
özelliğini ayarlayarak kalıcı (canlı tut) bağlantıları devre dışı bırakma
değerini 0 olarak ayarlayın veya
Mesaj İşleyicilerde HTTPTransport.keepalive.timeout.millis
değerinin 0 olması
performansı etkileyecektir.
Aşağıdaki örnekte, TargetEndpoint yapılandırması kalıcı (Keep alive) bağlantıları devre dışı bırakıyor
belirli bir arka uç hizmeti için keepalive.timeout.millis
değerini 0 değerine ayarlayın:
<!-- /antipatterns/examples/disable-persistent-connections-2.xml --> <TargetEndpoint name="default"> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net</URL> <Properties> <Property name="keepalive.timeout.millis">0</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>
Bir veya daha fazla arka uç hizmeti için "canlı bağlantılar" devre dışı bırakılırsa Edge'in hedef arka uç hizmetlerine yapılan her yeni istek için yeni bağlantı. Arka uç HTTPs ise Ayrıca Edge her yeni istek için SSL anlaşması yaparak API isteklerinin gecikmesi.
Etki
- Apigee Edge'in yeni bir bağlantı açması ve bu nedenle API isteklerinin genel yanıt süresini uzatır Her yeni istek için SSL el sıkışma işlemi gerçekleştirme.
- Bağlantıların serbest bırakılması biraz zaman aldığı için yüksek trafik koşullarında bağlantılar tükenebilir geri yükleyebilirsiniz.
En İyi Uygulama
- Arka uç hizmetleri, HTTP kalıcı bağlantısını HTTP 1.1'e uygun olarak kabul etmeli ve işlemelidir. yardımcı olur.
- Arka uç hizmetleri, mümkünse bir
Connection:keep-alive
başlığıyla yanıt vermelidir. kullanmaya devam edebilirsiniz. - Arka uç hizmetleri şu durumlarda
Connection:close
başlığıyla yanıt verir: nasıl kullanacağınızı göstereceğim.
Bu kalıbı uygulamak, Apigee Edge'in kalıcı veya kalıcı olmayan öğeleri otomatik olarak işlemesini sağlar. API proxy'sinde değişiklik gerektirmeden arka uç hizmetleriyle bağlantı kurma.