Azure Event Hubs'da Azure İyi Tasarlanmış Çerçeve perspektifi

Azure Event Hubs , düşük gecikme süresi ve yüksek güvenilirlik ile büyük hacimli olayları ve verileri alan ve işleyen ölçeklenebilir bir olay işleme hizmetidir. Saniyede milyonlarca olayı alabilir ve işleyebilir. Bir olay hub'ına gönderilen veriler, herhangi bir gerçek zamanlı analiz sağlayıcısı veya toplu iş ve depolama bağdaştırıcıları kullanılarak dönüştürülebilir ve depolanabilir.

Event Hubs'ı kullanma hakkında daha fazla bilgi için, Bağlı cihazlardan ve uygulamalardan saniyede milyonlarca olay almak için Event Hubs'ın nasıl kullanılacağını öğrenmek için Azure Event Hubs belgelerine bakın .

Event Hubs'ı kullanmanın iş yükünüz için operasyonel mükemmellik ve güvenilirlik elde etmeye yardımcı olduğunu anlamak için aşağıdaki makalelere başvurun:

Aşağıdaki bölümler, İyi Tasarlanmış Çerçeve perspektifinden Azure Event Hubs'a özeldir:

  • Tasarımla ilgili dikkat edilecek noktalar
  • Yapılandırma denetim listesi
  • Önerilen yapılandırma seçenekleri
  • Kaynak yapıtlar

Tasarımla ilgili dikkat edilecek noktalar

Azure Event Hubs bir çalışma süresi SLA'sı sağlar. Daha fazla bilgi için Event Hubs için SLA'ya başvurun.

Denetim listesi

Azure Event Hubs'ı operasyonel mükemmelliği göz önünde bulundurarak yapılandırdınız mı?

  • Sırasıyla olay yayımcısı ve tüketicisi için SendOnly ve ListenOnly ilkeleri oluşturun.
  • Olay Hub'larına olay göndermek için SDK'yı kullanırken, yeniden deneme ilkesi (EventHubsException veya OperationCancelledException) tarafından oluşan özel durumların düzgün yakalandığından emin olun.
  • Yüksek aktarım hızı senaryolarında toplu olayları kullanın.
  • Her tüketici Event Hubs SKU'su tarafından desteklenen bir bölümden en fazla bölüme kadar olan olayları okuyabilir
  • Yeni uygulamalar geliştirirken istemci SDK'sı olarak (.NET ve Java) veya EventHubConsumerClient (Python ve JavaScript) kullanın EventProcessorClient .
  • Çözüm genelinde kullanılabilirlik ve olağanüstü durum kurtarma stratejinizin bir parçası olarak Event Hubs coğrafi olağanüstü durum kurtarma seçeneğini etkinleştirmeyi göz önünde bulundurun.
  • Bir çözümün çok sayıda bağımsız olay yayımcısı olduğunda ayrıntılı erişim denetimi için Event Publishers kullanmayı göz önünde bulundurun.
  • Olayları belirli bir bölüme yayımlamayın.
  • Olayları sık sık yayımlarken mümkün olduğunda AMQP protokolunu kullanın.
  • Bölüm sayısı, elde edebilirsiniz aşağı akış paralellik derecesini yansıtır.
  • Tüketen her uygulamanın ayrı bir tüketici grubu kullandığına ve her tüketici grubu için yalnızca bir etkin alıcı olduğundan emin olun.
  • Yakalama özelliğini kullanırken, özellikle düşük olay birimlerinde zaman penceresinin ve dosya boyutunun yapılandırmasını dikkatlice göz önünde bulundurun.

Yapılandırma önerileri

Azure Event Hubs'ı yapılandırırken güvenilirliği iyileştirmek için aşağıdaki önerileri göz önünde bulundurun:

Öneri Açıklama
Olay Hub'larına olay göndermek için SDK'yı kullanırken, yeniden deneme ilkesi (EventHubsException veya OperationCancelledException) tarafından oluşan özel durumların düzgün yakalandığından emin olun. kullanırken HTTPSuygun bir yeniden deneme düzeninin uygulandığına emin olun.
Yüksek aktarım hızı senaryolarında toplu olayları kullanın. Hizmet, tek olaylı bir json dizi yerine abonelere birden çok olay içeren bir dizi teslim eder. Tüketen uygulamanın bu dizileri işlemesi gerekir.
Her tüketici Event Hubs SKU'su tarafından desteklenen bir bölümden en fazla bölüme kadar olan olayları okuyabilir. Tüketen uygulamanın tarafında en yüksek ölçeği elde etmek için her tüketicinin tek bir bölümden okuması gerekir.
Yeni uygulamalar geliştirirken istemci SDK'sı olarak (.NET ve Java) veya EventHubConsumerClient (Python ve JavaScript) kullanın EventProcessorClient . EventProcessorHost kullanım dışı bırakıldı.
Çözüm genelinde kullanılabilirlik ve olağanüstü durum kurtarma stratejinizin bir parçası olarak Event Hubs coğrafi olağanüstü durum kurtarma seçeneğini etkinleştirmeyi göz önünde bulundurun. Bu seçenek, farklı bir bölgede ikincil ad alanı oluşturulmasını sağlar. Yalnızca etkin ad alanı herhangi bir zamanda ileti alır. İletiler ve olaylar ikincil bölgeye çoğaltılamaz. Bölgesel yük devretme için RTO 30 dakikaya kadardır. Bu RTO'nun müşterinin gereksinimleriyle uyumlu olduğunu ve daha geniş kullanılabilirlik stratejisine uyduğunu onaylayın. Daha yüksek bir RTO gerekiyorsa, istemci tarafı yük devretme deseni uygulamayı göz önünde bulundurun.
Bir çözümün çok sayıda bağımsız olay yayımcısı olduğunda ayrıntılı erişim denetimi için Event Publishers kullanmayı göz önünde bulundurun. Olay Yayımcıları bölüm anahtarını yayımcı adına otomatik olarak ayarlar, bu nedenle bu özellik yalnızca olayların tüm yayımcılardan eşit şekilde kaynaklanması durumunda kullanılmalıdır.
Olayları belirli bir bölüme yayımlamayın. Olayları sıralamak gerekliyse aşağı akış sıralamayı uygulayın veya bunun yerine farklı bir mesajlaşma hizmeti kullanın.
Olayları sık sık yayımlarken mümkün olduğunda AMQP protokolunu kullanın. OTURUMU başlatırken AMQP'nin ağ maliyetleri daha yüksektir, ancak HTTPS her istek için TLS ek yükü gerektirir. Daha sık yayımcılar için AMQP daha yüksek performans sunar.
Bölüm sayısı, elde edebilirsiniz aşağı akış paralellik derecesini yansıtır. Maksimum aktarım hızı için Olay Hub'ı oluştururken SKU tarafından desteklenen bölüm sayısı üst sınırını kullanın. Bölüm sayısını artırmak, eşzamanlı işlem varlıklarını bölümlere uyacak şekilde ölçeklendirmenize olanak tanır ve en uygun gönderme ve alma kullanılabilirliğini sağlar.
Yakalama özelliğini kullanırken, özellikle düşük olay birimlerinde zaman penceresinin ve dosya boyutunun yapılandırmasını dikkatlice göz önünde bulundurun. Data Lake 2. Nesil minimum işlem boyutu için ücretlendirilir. Zaman penceresini, dosya boyutu en düşük boyuta ulaşacak kadar düşük ayarlarsanız ek maliyete neden olursunuz.

Kaynak yapıtlar

Temel SKU ile Event Hubs ad alanlarını bulmak için aşağıdaki sorguyu kullanın:

Resources 
| where type == 'microsoft.eventhub/namespaces'
| where sku.name == 'Basic'
| project resourceGroup, name, sku.name

Sonraki adım