Aracılığıyla paylaş


Sunucu tarafından gönderilen olaylar

Sunucu tarafından gönderilen olaylar (SSA'lar), sunucuların tek bir HTTP bağlantısı üzerinden web istemcilerine gerçek zamanlı güncelleştirmeler göndermesini sağlamak için kullanışlı bir mekanizma sağlar. Çift yönlü iletişime izin veren WebSockets'in aksine, SSA'lar tek yönlü olur: sunucu herhangi bir yanıt beklemeden istemciye veri gönderir.

Sunucu tarafından gönderilen olayları işleyen Kapsayıcılar için Application Gateway'i gösteren diyagram.

Sunucu tarafından gönderilen olayları kullanan uygulamalar tıbbi (bekleme alanı durum panoları), finans (hisse senedi borsası görüntüleme), havacılık (uçuş durumu) ve meteoroloji (mevcut hava durumu) gibi çeşitli sektörlerde bulunabilir.

Sunucu tarafından gönderilen olay bağlantısı ve veri akışı

Sunucu tarafından gönderilen olaylar HTTP protokolü üzerinden veri gönderir. Bu olaylar, EventSource arabirimi tarafından tanımlanan ve W3C tarafından standartlaştırılmış çok sayıda tarayıcı tarafından desteklenir. Sunucu tarafından gönderilen bir olay için aşağıdaki işlem gerçekleşir:

  1. İstemci sunucuya bir bağlantı başlatır.
  2. Sunucu, metin/event-stream içerik türünü içeren bir yanıt gönderir.
  3. Hem istemci hem de sunucu bağlantıyı açık bırakıp sunucunun gelecekteki olayları göndermesini sağlar.

Sunucu Tarafından Gönderilen Olaylar ve Kapsayıcılar için Uygulama Ağ Geçidi

Sunucu tarafından gönderilen olaylar ve ölçeklendirme

Kapsayıcılar için Application Gateway ölçeği daraltıldığında, 5 dakika içinde boşaltılmayan devam eden bağlantılar kesilir. Sunucu tarafından gönderilen olaylar, uygulamanın yeni bir bağlantı kurmasını ve yeni olayları almaya başlamasını sağlayan otomatik yeniden deneme mantığını kullanır.

Sunucu tarafından gönderilen olaylar ve HTTP/2

Sunucu tarafından gönderilen olaylar hem HTTP/1.1 hem de HTTP/2 ile desteklenir. Tarayıcı HTTP/2'yi destekleyebilirse, sunucu tarafından gönderilen olaylar aynı bağlantı üzerinden birden çok isteği etkinleştirerek performansı geliştirmek için çoğullamadan yararlanıyor.

Konfigürasyon

Sunucu tarafından gönderilen olaylar Kapsayıcılar için Application Gateway tarafından işlenir. Ancak, sunucu tarafından gönderilen bağlantıların zaman aşımına uğramasını önlemek için Kapsayıcılar için Application Gateway'in istek zaman aşımı değerinin ayarlanması gerekir.

Ağ Geçidi API'sinde, RoutePolicy değeriyle bir routeTimeout kaynağı 0s şeklinde tanımlanmalıdır.

apiVersion: alb.networking.azure.io/v1 
kind: RoutePolicy 
metadata: 
  name: route-policy-with-timeout 
  namespace: test-sse 
spec: 
  targetRef: 
    kind: HTTPRoute 
    name: query-param-matching 
    group: gateway.networking.k8s.io 
  default: 
    timeouts:  
      routeTimeout: 0s 

Uyarı

Kapsayıcılar için Application Gateway'in boşta kalma zaman aşımı şu anda 5 dakika olarak ayarlanmıştır. Uygulamanız bu süre içinde veri göndermiyorsa veya almıyorsa, bağlantının kapanmasını önlemek için canlı tutma isteği göndermeyi göz önünde bulundurun. Mesajın başına bir iki nokta : ekleyerek bunu yorum olarak işlev gösterecek şekilde uygulayabilirsiniz. Örneğin, aşağıdaki iletiyi canlı tutma olarak gönderebilirsiniz: : keep-alive\n\n