Olay odaklı mimari (EDA) modern, duyarlı ve gevşek bir şekilde çiftleştirilmiş sistemler oluşturmak için temel bir işlem olarak ortaya çıktı. Microsoft Azure, EDA'yı uygulamak için sağlam bir hizmet paketi sunuyor, Azure Event Hub yüksek çözünürlüklü ve Azure işlevleri, sunucusuz bir şekilde gerçek zamanlı olarak bu etkinliklere tepki vermek için sunucusuz bir işlem sağlıyor. Bu makale, bu iki hizmet kullanarak, tasarım ilkeleri, adım adım adım adım adım adım uygulama, operasyonel en iyi uygulamalar ve gerçek dünya kullanımı koşullarıyla ilgili olarak hizmet veren bir kılavuz sunuyor.
Event-Driven Architecture
Onun özünde, bir olay odaklı mimari, üretim, algılama, tüketim ve olaylara tepki olarak inşa edilmiştir. Bir olay devlette önemli bir değişikliktir - örneğin, bir sensör okuması, bir ödeme işlemi veya kullanıcı profili güncellemesi. EDA'da, bileşenler doğrudan senkronizasyonu azaltan ve bağımsız üreticiler ve tüketicilere tepki verir.
Anahtar Kavramları
- [FONT:0] Event Yapımcısı:[Dönetici:[Dönetici:0) Olay otobüslerine olayları yayan herhangi bir bileşen. Örnekler IoT cihazları, mikro hizmetler veya değişim verileri yakalama (CDC) olayları içerir.
- [FONT:0] Event Bus / Stream: [Dönder: ] Sıkıntılı, kalıcı olmayan bir boru hattı, bu rolü mükemmel bir şekilde uygun bir şekilde sunuyor, bölmek, sipariş edilen olay akışları.
- [FONT:0] bile Tüketici: [DÜDÜT:1] Yeni olaylar geldiğinde, abonelerin kendilerine yönelik ve süreçlere abone olan bir bileşen olarak hareket edebilir. Azure Functions, tüketici olarak hareket edebilir ve yeni olaylar geldiğinde otomatik olarak tetiklenebilir.
- [FONT:0] Hattat Sourcing ve CQRS:[Dönetici: 0 ) Birçok uygulama EDA'yı olay kaynağı ile birleştirir (gerçek kaynağı olarak olay giriş yapar) ve sorgu sorumluluğu ayrı okuma ve yazma modelleri.
EDA tarafından getirilen dekoupling, ekiplerin bağımsız olarak geliştirme, dağıtma ve ölçek hizmetleri geliştirmelerini sağlar. Ayrıca gerçek zamanlı analitik, denetim izlerini ve tarihi olayları da silme veya yeniden işlemeye başlama yeteneği.
Azure Event Hub: The Ingestion Katman
Azure Event Hub, ikinci başına milyonlarca olayı en yüksek devir, düşük gecikme ve dayanıklılık için tasarlanmıştır. Event Hub, olayları bölümlere alır, her biri bir dizi etkinlik için bir kontrol noktası olarak okuyabilirsiniz.
Event Hub'ın Anahtar Özellikleri
- [FONT:0]Partitioning:[Dönetici:[Dönetici:0) Etkinlikler paralel işlem için bölümlere dağıtılır.Her bölüm bağımsızdır ve Azure Fonksiyonlarının ayrı bir örneği tarafından tüketilebilir.
- [FONT:0)Kate:[Dönetici:[Dönetici], Azure Blob Storage veya Azure Data Lake Storage for Archival and toplu analiz için otomatik olarak devam ediyor.
- [FONT:0)Geo-disaster Recovery:) Bölgelerdeki isim uzaylarının tercih edilmesi yüksek kullanılabilirlik sağlar.
- [FONT:0]AMQP, HTTPS ve Kafka Protokolü: birden fazla protokole destek veriyor, üreticileri Apache Kafka müşterileri kullanarak doğrudan olayları göndermelerine izin veriyor.
- [FONT=0)Throughput Birimleri (TUs) veya İşleme Birimleri (PUlar):), sunucusuz tier (Basic ve Standard), TUs kullanılır; Premium ve Özel, PUs daha öngörülebilir performans sağlar.
Adım Adım Adımları
- [FONT:0) Bir Event Hubs Namespace: Azure portalında, yeni bir Event Hubs adı alanı oluşturun. Fiyat katmanını seçin (Standart en üretim iş yükleri için önerilir).Enable oto-inflate eğer değişken bir bağlantı beklerseniz.
- [FONT:0) Bir Olay Hub Instance: Adı uzayında, bir etkinlik merkezi oluşturmak. bölme sayısını belirtin - çoğu kullanım için ortak bir kural 432 bölümlerini geri almak için değiştirilemez.
- [[Kategoriler Paylaşım Politikaları:[Döneticiler:[Döneticiler:0)En az ayrıcalık ilkesini takip etmek için, "ListenOnly" için bir politika oluşturun.
- [FONT:0)Enable yakalama (Okul):[Dönetici: ) Sürekli bir saklama için tüm ham olayları saklamanız gerekiyorsa, yakalama ve bir Azure Blob Storage konteyner veya Data Lake Storage'a işaret edin.
Bir el-on örneği için, [[0) resmi olarak hızlı başlangıç kılavuzuna atıfta bulunun[Dönem: 1).
Azure Fonksiyonlları: The Compute Interview
Azure Fonksiyonlları, olaylara cevap veren kod yazabileceğiniz bir sunucusuz hesaplama ortamı sağlar. Etkinlik Hub tetikleyicisi, yeni olayların bir olay merkezine yayınladığında otomatik olarak otomatik olarak işlem gören bir işlem ortamına sahiptir.
Event Hub Teprasyon Davranışı
- [FONT:0)Checkpointing:[Dönetici:[Dönetici:0)))İşletme süresi, son başarıyla işlenmiş olayı bölme başına takip etmeyi başarır. Bu, işlev yeniden başlatılırsa, doğru pozisyondan özgeçmişler sağlar.
- [FONT:0)Batch Processing:[Dönetici:[Dönetici:0) Varsayılan olarak, tetikleyici bir olay topluluğu sunar.
- [FONT:0]Parallelism:[Dönetici:[Döneticileri 1 ) İşsiz olaylarla bölme sayısını eşitler. Paralellik artırmak, bölüm sayısını artırmak (gerekli limitler ile) en yüksek bağlantı noktası, tüketim planı yerine Premium veya Özel barındırma planını kullanmak, özellikle de fonksiyonun işleme süresi birkaç saniyeden fazlaysa.
Event Hub Tefikasyonu ile Azure Fonksiyonlar Oluşturma
- Azure Portal'da veya Azure CLI'da bir işlev App oluşturun. runtime yığını (e.g., .NET, Node.js, Python).
- Bir Event Hub bağlayıcısı ekleyin. fonksiyon imzası olay verileri için bir parametre içerecektir (örneğin, 03. veya )
- Event Hub bağlantı dize ayarını ( Uygulama Ayarlarından) ve etkinlik merkezi adını ayarlayın.
- İşlev içinde işleme mantığı yazın. Ortak görevler: bir veritabanını güncellemek, bir API çağırın veya gerçek zamanlı panolar için SignalR gibi başka bir hizmete gönder.
- Örneğin, işlenmiş verileri depolamak için bir Cosmos DB çıktı bağlayıcısı.
[FONT:0)Azure Functions Event Hub, her dil için ayrıntılı kod örnekleri sunar.
End-to-Bit Mimarlıkını Tasarlamak
Şimdi parçaları birleştiriyoruz. Tipik akış:0)Producers) →Üniversite:2) Hattat Hub) →Üniversite Fonksiyonlar[Downstream Services[DownstreamT:6)[Üye Olmayanlar: Bir Üretim Lisanslama sistemi ile yürüyelim: GPS pingleri binlerce araçtan alan bir filo yönetimi sistemi.
Adım 1: Etkinlik Schema'yı Tanımlayın
Konsolosluk önemlidir. Bir şema kayıt (örneğin Azure Schema Kayıtları gibi) kullanın veya sadece JSON şemasını uygulayın. Örnek bir etkinlik ödeme yükü:
{
"vehicleId": "VH-12345",
"latitude": 37.7749,
"longitude": -122.4194,
"speed": 65.2,
"timestamp": "2025-03-21T10:30:00Z"
}
Euro veya Protobuf kullanarak para yükü boyutunu azaltabilir ve şema evrimi yetenekleri sağlayabilir, ancak JSON en basit to debug olmaya devam eder.
Adım 2: Configure Yapımcılar
Yapımcılar Azure IoT Hub veya özel uygulamaları kullanarak, Event Hubs SDK'sını kullanarak IoT cihazlar olabilir. Yüksek hacimli senaryolar için birlikte toplu etkinlikler (örneğin, talep başına 100 olay) göndererek, yapımcının üst düzey geri dönüş ile yeniden deneme politikasını kullanmasına yardımcı olabilir.
Adım 3: Partition Key
Olay Hub bölümleri bir bölüm anahtarına dayanan olayları.Eğer araç başına işlem sipariş ederseniz, bölüm anahtarı olarak kullanın. Bu, aynı bölümden gelen tüm olayları aynı araç arazisinden sağlar ve tek bir tüketici tarafından işlenir.
Adım 4: Azure Fonksiyonlarını Yapın
İşlev her bir sırayla kümesleniyor ve sonra en son yerini gerçek zamanlı sorgular için önbellek (örneğin, Azure Redis Cache) yazabiliyor. Ayrıca geofence olayları – bir araç belirli bir bölgeye girdiğinde, işlev Azure Logic Apps veya Twilio ile bir uyarı gönderebilir.
Adım 5: Başarısızlık ve Yenidenleme
Bir toplu işlem başarısız olursa, Event Hub, işlevin yeniden deneme politikasına göre yeniden deneyecektir (default, normal işlem hattından 5 kez üst üste iner).
Adım 6: İzleme ve Ölçeği
- Azure Monitor'i Event Hub metrics'i takip etmek için kullanın: gelen mesajlar, throttled requests, backlog boyutu (son kontrol noktası arasındaki fark).
- Azure Fonksiyonlarını ölçeklendirmek için, tüketim planı otomatik olarak ölçeklenecek, ancak soğuk başlangıç gecikmeleri olabilir. Premium plan, örneğin önceden savaş öncesi ve sanal ağ entegrasyonu sunuyor.
- Yüksek backlog için uyarılar oluşturun, bu da işlevin devam edemeyeceğini gösteriyor - artan bölmeleri düşünün veya barındırma planını geliştirin.
Gelişmiş Desenler ve En İyi Uygulamaları
Event Replay ve Catch-up
Event Hub'ın önemli bir avantajı, bir yapılandırılabilir bir süre için (standart günde 90 güne kadar) gerçekleşen olaylardır. Bu, tüketicilerin zaman belirli bir noktadan itibaren tekrar oynamalarına olanak sağlar - yeni bir veritabanı veya yeniden işleme işlemini yaptıktan sonra yeniden oynatabilirsiniz.
Çok sayıda Tüketici Grubu
Event Hub, olay merkezi başına 20 tüketici grubuna destek vermektedir. Farklı işleme hatları için ayrı tüketici grupları kullanın: gerçek zamanlı analitik için biri, arşivleme modelleri için başka bir ve eğitim makinesi öğrenme modelleri için üçüncü.Her tüketici grubu kendi kontrol noktası mağazasını alır, bağımsız ilerleme sağlar.
Idempotent Processing
Olaylar en az bir kez teslim edilebilir, fonksiyon idempotent olmalıdır. Örneğin, bir veritabanına eklendiğinde, ekleme yerine tez işlemleri kullanın. veya bir olay kimliği zaten bir deduplication mağazasında varsa kontrol edin (örneğin, Redis TTL ile).
Azure Function ile entegrasyon Bindings
Başka bir yerde veri göndermek için manuel kod yazmak yerine, çıktı bağlayıcıları kullanın. Aşağıdaki tablo, etkinlik odaklı senaryolar için ortak bağlayıcılar özetliyor:
- [FONT:0]Cosmos DB: Otomatik olarak çalışma çıktılarından gelen belgeleri.
- [FONT:0)SignalR Servisi:[Dönetici:[Dönetici:0)[Dönetici:[Dönetici:[Dönetici: 0,4] Yayın işle ilgili etkinliklerle bağlantılı müşterilere (örneğin, gerçek zamanlı pano).
- [FONT:0)Blob Storage:[[Dönem: 1 ) Sürekli olarak toplu çıktı yaz (malintileri azaltmak için per-event yazmaktan kaçının).
- [FONT:0] bilek Hubs (Output):) Zincirleme için başka bir Event Hub'a olayları gönderin.
Güvenlik Önergeleri
- Azure Fonksiyonları için Yönetilen Kimlik, standart metindeki bağlantı dizelerini depolamak yerine Event Hub'a bağlanmak için kullanın.
- Etkin güvenlik duvarı ve sanal ağ entegrasyonu Event Hub adı alanı için ağ erişimini kısıtlamak için.
- Azure Key Vault'u Event Hub bağlantı dizeleri ve erişim anahtarları gibi sırları depolamak için kullanın.
- Geri ve geçişte şifre olayları (hatta Hub varsayılan olarak TLS kullanır).
Vakaları ve Gerçek Dünya Senaryolarını Kullanın
IoT Telemetri İşleme
Daha önce açıklandığı gibi, filo yönetim senaryosu klasik bir uyumdur. Azure IoT Hub, cihaz mesajlarını alabilir ve alt işlem için Event Hub'a yollayabilir. Azure Functions, o zaman rotada ortalama hız hesaplayabilir, anormallikler tespit edebilir veya bakım uyarıları tetikleyebilir.
Clickstream Analytics
E-ticaret web siteleri büyük tıklama verileri üretir. Event Hub, tıklama için toplam sayfa görüşleri, alışveriş sepeti eylemleri ve aramalar. Fonksiyonlar, kullanıcı profili verileri, güncelleme seans sayacı ile olayları zenginleştirebilir ve Azure Data Explorer'a gerçek zamanlı panolar için itebilirsiniz.
Data Capture (CDC)
Örneğin, Debezium (Kafka Connect) kullanarak veritabanı değişiklikleri Event Hub'e iletmeniz ve Elasticsearch'a yazmanız gerekir.Bu model her zaman güncel bir anket mantığı olmadan geçerlidir.
Finansal İşlem İşleme İşleme
Finansta, etkinlik odaklı mimari dolandırıcılık tespiti, gerçek zamanlı risk puanlamaları ve ticaret yerleşimleri sağlar. Event Hub'in düşük gecikmeli ve yüksek devir sayısı ikinci başına binlerce ticaretle uygun hale getirir. Azure Functions dolandırıcılık tespit modellerini, bayrak şüpheli işlemleri yürütebilir ve denetim izlerini sürdürürken uyarı gönderebilir.
Maliyet Optimizasyonu ve İzleme
Sunucusuz boş maliyeti azaltırken, hala kullanım izlemek zorundasınız. Anahtar maliyet sürücüleri şunlardır:
- [FONT=0) Hub Throughput Birimleri: [Dönetici: [Dönetici: 0] Her TU 1 MB/s ingress and 2 MB/s egress (veya ikinci başına 1000 olay) öngörülemeyen iş yükleri için, otomatik şişirme sağlar.
- [FONT:0]Verinin en büyük kısmı: milyon olay başına Billed (Standart tier). Olay sayısını azaltmak için topluca kullanın.
- [FONT=0) Azure Function Execution Time:[Dönetici:[Dönetici:0)) Uygulamanın ikincisinde tüketim planı suçlamalarının etkili olmasını sağlamak - aramalardan ve bir I /O kullanmaktan kaçının.
- [FONT:0] Yakalama ve Checkpoints için kullanılır: Blob depolama maliyetleri minimumdur ancak saklama politikaları göz önünde bulundurun.
Azure Cost Management'te bütçe uyarıları ayarlayın. Uygulama İçgörüleri çalışma zamanlarını ve bağımlılık çağrılarını takip edin.TheurFLT:0)Azure Event-güdümlü mimari modeli[Dönetici 1) Sayfa izleme konusunda rehberlik içerir.
Alternatif Teknolojilerle Karşılaştırma
- [FONT:0)Azure Service Bus:[Dönderlik gerektiren komutlara daha iyi bağlı iş yükleri için daha iyi, işlemsel işleme ve ölü-çakırıklık. Olay Hub yüksek seviyeli etkinlik akışı için optimize edilmiştir, nokta-to-point mesajlaşma için değil.
- [FONT:0]Apache Kafka, HDInsight veya Confluent:[Döneticileri kontrol altına almak için daha fazla kontrol gerektirir ancak operasyonel bir yük gerektirir. Event Hub, Kafka protokolü uyumluluğunu yönetilen bir hizmetle sağlar.
- [FONT:0] bilet Grid: [Dönetici programlama ve Azure hizmetleri arasında gerçekleşen olay için uygun olan CUMHAL:0) Yüksek hacimli akış için tasarlanmamıştır - Event Hub ikinci olarak milyonlarca olayla ilgilidir.
- [FONT=0) ● AMAS KAYNAKLARI: [FONT=0] ● A managed SQL-like processing motoru zaman dizi analizi için çalıştırılabilir.It can run on top of Event Hub, but for complex business logic, Azure Functions offers more esnekliği.
Operasyonel Checklist
- Olaylar için zaman ayırma zamanı (gündefault 1 gün, Standart 7 gün).
- Azure Fonksiyonları için uygulama öngörülerini iş sayma ve hataların girişini yapın.
- Enable Azure Monitor, Event Hub throttling için uyarılar (örneğin, [[)
- TLS versiyonunu ve doğrulama türünü uygulamak için Azure Policy kullanın.
- Test başarısızlık senaryoları: işlevi durdurun, olayların bir araya gelmesine izin verin, sonra kontrol kontrol edilebilirliğini doğrulamaya yeniden başlayın.
- Mimarinin zirve hacmini sağlamak için simdi bir yapımcı ile yükleme testleri yapın.
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Azure Event Hub ve Azure Fonksiyonlar ile ilgili bir etkinlik odaklı bir mimari inşa etmek, ölçeklenebilir, maliyet-enterli ve doğru zamanlı veri işleme için uygun bir sistem ile organizasyonları donduruyor. kalıcı olay akışı ve sunucusuz hesaplamalar, Azure'un bölünmesi, ölçeklendirme ve kontrol edici modelleri ile ilgili olarak, tasarım ilkeleri ve en iyi kontrol uygulamalarını takip ederek, idempotent işleme ve operasyonel sağlığın uygulanması - veri işlemeye ve izleme becerisini sağlayarak, veri hacimlerine odaklanmaya olanak sağlar.