içerik
- GiriÅŸ
- Örnek
- BileÅŸenler
- Desen Analizi
- Kullanım Durumları
- Sonuçlar
1. GiriÅŸ
Olay tabanlı mimari (EDA) modeli, yüksek düzeyde ölçeklenebilir uygulamalar üretmek için kullanılan popüler bir dağıtılmış eşzamansız mimari modelidir. EDA, olayları eşzamansız olarak alan ve işleyen yüksek oranda ayrılmış, tek amaçlı bileşenlerden oluşur.
2. Örnek
Olay tabanlı mimariyi bir e-ticaret sitesi örneği ile karakterize edeceğiz. Mimari, sitenin, yoğun talep zamanlarında, uygulamayı kilitlemeden veya kaynakları aşırı sağlamadan çeşitli kaynaklardan gelen değişikliklere tepki vermesini sağlar.
3. BileÅŸenler
Olay güdümlü mimarilerin beş temel bileşeni vardır: olay üreticileri, ilk ve işleme olayları, olay yönlendiricileri ve olay tüketicileri. Bir üretici, yönlendiriciye, işleme olaylarını filtreleyen ve tüketicilere ileten bir ilk olay yayınlar. Üretici ve tüketici hizmetleri birbirinden ayrılarak ölçeklendirilmelerine, güncellenmelerine ve bağımsız olarak dağıtılmalarına olanak tanır.
3.1 Etkinlik Yapımcıları
Örnekte, Etkinlik Üreticileri bir perakende web sitesi, mobil uygulama ve satış noktası terminali ile temsil edilmektedir. Prensipte, bir olguyu kaydeden ve olguyu bir olay mesajı olarak temsil eden herhangi bir şey üretici olabilir.
3.2 Olaylar
İlk etkinlik ise, Üretici tarafından üretilen ve yönlendirici tarafından alınan orijinal olay işleme olayları Olay Yönlendirici tarafından oluşturulan ve Etkinlik Tüketici bileşenleri tarafından alınan olanlardır.
Olaylar, durumu (satın alınan ürün, fiyatı ve teslimat adresi) taşıyabilir veya olaylar tanımlayıcı olabilir (siparişin gönderildiğine dair bir bildirim).
Bir olay genellikle iki bölümden oluşur: 1) olay başlığı , olay adı, zaman damgası ve olay türü gibi bilgileri içerir; 2) olay gövdesi, algılanan durum değişikliğinin ayrıntılarını sağlar.
3.3 Kanallar
Hem ilk hem de işlenmiş olaylar olay kanalları tarafından iletilir .
İlk olay kanalları bir TCP/IP bağlantısı veya bir dosya (XML, JSON, e-posta vb.) olabilir. Aynı anda birkaç başlangıç ​​olay kanalı açılabilir. Eşzamansız olarak okunurlar ve neredeyse gerçek zamanlı olay işlemeye izin verirler. Olaylar, daha sonra Olay Yönlendiricisi tarafından işlenmeyi bekleyen bir kuyrukta saklanır.
İşleme olay kanalları vardır tipik ileti kuyrukları ve mesaj simsarları tarafından temsil etti. Olayların birden çok Olay Tüketicisi (her biri alınan işleme olayına göre farklı bir görevi yerine getirir) tarafından yönetilebilmesi için en yaygın şekilde kullanılan ileti aracıları kullanılır.
3.4 Olay Yönlendiricisi
Olay Yönlendiricisi, bir başlangıç ​​olayının tanımlanmasından ve ardından olayda yer alan adımların seçilmesinden ve yürütülmesinden sorumludur . İlk olaydaki her adım için, Olay Yönlendiricisi , daha sonra Olay Tüketicisi tarafından alınan ve işlenen bir olay kanalına eşzamansız olarak bir işleme olayı gönderir .
Event Router ayrıca bir dizi iddiayı tetikleyebilir. ÖrneÄŸin, olay iÅŸleme motoruna gelen olay, stokta düşük bir ürün kimliÄŸi ise, bu durum “Ãœrün KimliÄŸi sipariÅŸ et” ve “Personele haber ver” gibi tepkileri tetikleyebilir.
Olay Yönlendiricisinin ilk olayı iÅŸlemek için gerekli iÅŸ mantığını gerçekleÅŸtirmediÄŸini belirtmek önemlidir – Olay Tüketicileri arasında  uygun talimatları (= iÅŸlem olayları ) dağıtır .
3.5 Etkinlik Tüketicileri
Örnekte, Etkinlik Tüketicileri, Yönetim Veritabanı, Finans Sistemi ve Müşteri İlişkileri ofisi tarafından temsil edilmektedir.
Bu bileşenler, işleme olayını işlemek için gerekli olan uygulama iş mantığını içerir . Olay Tüketicileri, uygulamada veya sistemde belirli bir görevi yerine getiren bağımsız, bağımsız, yüksek düzeyde ayrıştırılmış mimari bileşenlerdir. Etkinlik Tüketicisi bileşeninin ayrıntı düzeyi, ayrıntılı (örneğin, sipariş üzerine satış vergisini hesaplama) ile kaba (örneğin, bir sigorta talebini işleme koyma) arasında değişebilse de, genel olarak, her Etkinlik Tüketicisinin tek bir iş görevini yerine getirmeli ve belirli görevini tamamlamak için diğer tüketicilere güvenmemelidir.
4. Kalıp Analizi
4.1 Ölçeklenebilirlik: yüksek
Her olay tüketicisi ayrı ayrı ölçeklenebilir, bu da ince taneli ölçeklenebilirliğe izin verir.
4.2 Geliştirme karmaşıklığı: yüksek
Modelin eşzamansız doğasının yanı sıra sözleşme oluşturma ve yanıt vermeyen olay işlemcileri ve başarısız aracılar için kod içinde daha gelişmiş hata işleme koşullarına duyulan ihtiyaç nedeniyle karmaşıktır.
4.3 Performans: yüksek
Eşzamansız yetenekler aracılığıyla yüksek performans: Ayrılmış, paralel eşzamansız işlemleri gerçekleştirme yeteneği, mesajları kuyruğa alma ve kuyruktan çıkarma maliyetinden daha ağır basar.
4.4 Test edilebilirlik: düşük
Bireysel birim testi aşırı zor olmasa da, olaylar oluşturmak için bir tür özel test istemcisi veya test aracı gerektirir. Test, bu kalıbın eşzamansız doğası nedeniyle de karmaşıktır.
4.5 Değiştirilebilirlik: yüksek
Olay-tüketici bileşenleri tek amaçlı olduğundan ve diğer olay tüketici bileşenlerinden tamamen ayrıldığından, değişiklikler genellikle bir veya birkaç olay tüketicisine yalıtılır ve diğer bileşenleri etkilemeden hızlı bir şekilde yapılabilir.
5. Kullanım durumları
5.1 Hesaplar arası, bölgeler arası veri çoğaltma
Farklı bölgelerde ve hesaplarda faaliyet gösteren ve dağıtan ekipler arasındaki sistemleri koordine edin. Sistemler arasında veri aktarmak için bir olay yönlendiricisi kullanarak, hizmetleri diğer ekiplerden bağımsız olarak geliştirebilir, ölçeklendirebilir ve dağıtabilirsiniz.
5.2 Fanout ve paralel iÅŸleme
Bir olaya yanıt olarak çalışması gereken çok sayıda sisteminiz varsa, her bir tüketiciye göndermek için özel kod yazmak zorunda kalmadan olayı dağıtmak için olaya dayalı bir mimari kullanabilirsiniz. Yönlendirici, olayı farklı bir amaç doğrultusunda her biri olayı paralel olarak işleyebilen sistemlere iletir.
5.3 Kaynak durumu izleme ve uyarma
Kaynaklarınızı sürekli olarak kontrol etmek yerine, herhangi bir anormallik, değişiklik ve güncellemeyi izlemek ve bunlarla ilgili uyarıları almak için olaya dayalı bir mimari kullanabilirsiniz. Bu kaynaklar, depolama paketleri, veritabanı tabloları, sunucusuz işlevler, bilgi işlem düğümleri ve daha fazlasını içerebilir.
5.4 Heterojen sistemlerin entegrasyonu
Farklı yığınlarda çalışan sistemleriniz varsa, bunlar arasında bağlantı olmadan bilgi paylaşmak için olaya dayalı bir mimari kullanabilirsiniz. Olay yönlendiricisi, sistemler arasında dolaylılık ve birlikte çalışabilirlik kurar, böylece agnostik kalırken mesaj ve veri alışverişi yapabilirler.
6. Sonuçlar
- Olay tabanlı mimari, ayrıştırılmış hizmetler arasında tetiklemek ve iletişim kurmak için olayları kullanır ve mikro hizmetlerle oluşturulmuş modern uygulamalarda yaygındır.
- Olay tabanlı mimari şu temel bileşenlere sahiptir: olay üreticileri, olay kanalları, ilk ve işleme olayları, olay yönlendiricileri ve olay tüketicileri.
- Olay tabanlı mimari, yüksek düzeyde ölçeklenebilir, kolayca değiştirilebilir ve eşzamansız doğası nedeniyle yüksek performanslıdır, ancak modelin geliştirme karmaşıklığı yüksektir ve test edilmesi önemsiz değildir.
- Olay tabanlı mimari kullanım örnekleri arasında hesaplar arası ve bölgeler arası veri çoğaltma; yayma ve paralel işleme; kaynak durumu izleme ve uyarma; heterojen sistemlerin entegrasyonu.