Olay güdümlü nedir ve gerçek zaman ne kadar hızlıdır?

Tamamlandı

Bunu düşünürsek birçok olay odaklı senaryo belirleyebiliriz. Birçoğu gerçek zamanlı reaksiyon gerektirir.

Gerçek zamanlı derken ne demek istiyoruz?

Gerçek zamanlı bir tepki anında bir yanıt olarak görülebilir. Şimdi bir kafede size ne içmek istediğinizi soran bir kasiyer örneği alalım.

Kasiyer anlık bir yanıt veya en azından çok yakında verilen bir yanıt bekler. Aksi takdirde, kasiyer soruyu tekrarlayabilir veya kaba davrandığınızdan şüphelenebilir. Hızlı bir yanıt rica edildi ve uygun görüldü. Yanıt verme süresi biraz farklılık gösterebilir, ancak yine de "gerçek zamanlı" olarak görülür. Bu nedenle, selamlama göndermek hızlı bir şekilde gerçekleşmelidir, ancak kasiyerin sorusunu yanıtlamak için siparişinizi kısaca düşünmekte bir sorun yoktur.

Bu senaryoyı yazılım sistemlerine çevirirseniz, tek ilgilendiğiniz zamanlamalardır: Yanıt Süresi, Tamamlanma Süresi, Erişim Süresi, Başlangıç Saatleri vb. Kullanıcı veya erişen uygulama bu zamanlamaları tanımlar.

Not

Gerçek zamanlı olarak, sistem görevleri işlevlerini belirlenen son tarihler içinde gerçekleştirir.

Sisteminizde neler olduğunu her zaman bilmeniz gerekir. Bu nedenle, zamanlarınızın günlüğe kaydedilmesi, izlenmesi ve ölçülmesi gibi gözden kaçması kolay noktaları unutmadığınızdan emin olun.

Önemli

Son tarihleri ve zamanlamaları önceden belirttiğinizden ve denetim için engelleyici olmayan bir izleme çözümü ayarladığınızdan emin olun.

Özetle, gerçek zamanın anında, süper hızlı anlamına geldiğini kabul ediyoruz. Senaryonuzda belirtilen koşullar, tam olarak ne kadar hızlı olduğunuzu belirler.

Olay temelli uygulamalar

Eğer bir tıklama olayını düşünüyorsanız, başka bir şeyi düşünüyorsunuz. Olay temelli uygulamalar başlat ve unut ilkesini kullanır. Olay, başka bir hizmet, olay hub'ı, akış veya Kafka gibi bir iletişim aracısı olabilecek bir sonraki sisteme doğru gönderilir ya da tetiklenir. Sistemdeki bir sonrakinden yanıt beklememiz gerekmez. Gevşek kavrama, başka bir düzeyde ele alınması gereken nihai tutarlılık pahasına sağlanır.

Etkinlik odaklı uygulamaların doğasını belirlemek için, Alex adında bir müşterinin kahve ve cappuccino satın alması örneğini kullanarak ana mimari kalıplarına bakalım.

Olay bildirimi

Olay bildirimi, belirli bir olayın veya olayın bildirimidir. Her olay ayrı olarak görülür. Alex adlı bir müşterinin kahve ve cappuccino satın alma örneği şöyle görünebilir:

1. Alex bir kahve alır.

2. Olay: Alex bir cappuccino satın alır.

Bir barista, Alex'in tam siparişini almak için tüm olayları dikkatle dinlemek zorunda. Ancak iki barista da içecekleri bağımsız olarak hazırlayıp servis edebilir.

Olay kaynaklı durum aktarımı

Etkinlik tabanlı durum aktarımıyla, gerekli tüm bilgiler tek bir olayda depolanır. Bir olay kaybolursa veya hizmetiniz tüm olayları dinlemiyorsa bu kullanışlı olur. Bizim örneğimizde olaylar şöyle görünür:

1. Alex bir kahve alır.

2. Olay: Alex, kahveye ek olarak bir cappuccino satın alır.

Bir barista ile yalnızca ikinci olayı dinlemek yeterli olabilir. İki barista ile ikincisinin ilkine bakması gerekecektir. Sipariş birlikte sunulabilse de, işlem tamamen ayrı yapmaktan daha uzun sürebilir.

Olay kaynağını belirleme

Olay kaynağını belirleme ile olay depolama odak noktası haline gelir. Gördüğünüz gibi, olaylar ilk örnektekiyle aynıdır. Ancak barista, bir olay aldığında ve Alex tarafından verilen tüm siparişlerin mevcut durumunu elde etmek için ilgili diğer olayları düşündüğünde bu kavram için önemlidir.

İkinci siparişle, barista Alex'in siparişinin ilk siparişi hatırlayarak bir kahveden ve bir cappuccinodan oluştuğunun farkındadır, çünkü bu içki sadece sipariş edildi. İkinci bir barista ile paralel çalışmak mümkün değildir.

Siparişleri almak ve içecekleri servis etmek için bir kasiyer eklediğimizde, baristalar içecekleri hazırlamak için bağımsız olarak çalışabilir. Müşteriler hakkında hiçbir şey bilmeleri gerekmez. Bu senaryoda kasiyer, olayları saklayan ve kalıcı hale getiren sözde olay deposudur. Olay kaynağını belirleme başka bir karmaşıklık katmanı ekler, ancak ayrıştırma da ekler.

1. Alex bir kahve alır.

Kasiyer: İlk sipariş (Alex için): Kahve

2. Olay: Alex bir cappuccino satın alır.

Kasiyer: (İkinci) sipariş (Alex için): Cappuccino

Kahve satın alma için etkinlik kaynaklandırmayı gösteren görselleştirme.

Telemetri verileri gerçek zamanlı olaylardır

Düşünebileceğimiz başka örnekler de vardır. Örneğin gıda veya ilaç üreticileri için soğutma sistemi çalıştırma senaryolarını düşünün. Sisteminizdeki sıcaklık ve diğer ilgili veriler için sürekli denetime ihtiyacınız vardır. Telemetri verilerinin farkında olmak ve bunları otomatik olarak denetlemek başarınız için kritik öneme sahiptir. Telemetriyi iki saniyede bir ölçmek ve ardından verilerin analiz edildiği, işlendiği ve işlendiği denetim sistemine göndermek olay odaklı bir sistemdir. Ayrıca verilerin gerçek zamanlı olarak işlenmesi gerekir çünkü işletmenin trajik sonuçlarından kaçınmak için hızlı tepki vermek kritik önem taşır.