Azure mesajlaşma hizmetleri arasında seçim yapma - Event Grid, Event Hubs ve Service Bus

Azure, bir çözüm boyunca olay veya ileti teslimi konusunda yardımcı olan üç hizmet sunar. Bu hizmetler şunlardır: Azure Event Grid, Azure Event Hubs, Azure Service Bus.

Bazı benzerlikleri olsa da her hizmet belirli senaryolar için tasarlanmıştır. Bu makale, bu hizmetler arasındaki farklılıkları açıklar ve uygulamanız için seçeceğiniz hizmeti anlamanıza yardımcı olur. Çoğu durumda, mesajlaşma hizmetleri birbirini tamamlayıcı özelliktedir ve birlikte kullanılabilir.

Olaylar ve iletiler karşılaştırması

Olay teslim eden hizmetlerle ileti teslim eden hizmetler arasında önemli bir fark vardır.

Olay

Olay, bir koşulun veya durum değişikliğinin basit bir bildirimidir. Olayın yayımcısı, olayın nasıl işleneceğiyle ilgili bir beklentiye sahip değildir. Bildirimle ne yapılacağına, olayın tüketicisi karar verir. Olaylar, ayrık birimler veya bir dizinin parçası olabilir.

Ayrık olaylar bir durumda değişir ve eyleme dönüştürülebilir. Sonraki adımı uygulamak için tüketicinin yalnızca bir şeyler olduğunu bilmesi gerekir. Olay verileri, ne olduğuyla ilgili bilgiler içerir ancak olayı tetikleyen verileri içermez. Örneğin, bir olay, tüketicilere bir dosyanın oluşturulduğunu bildirir. Dosya hakkında genel bilgilere sahip olabilir, ancak dosyanın kendisine sahip değildir. Ayrık olaylar, ölçeklendirilmesi gereken sunucusuz çözümler için idealdir.

Bir dizi olay bir koşulu bildirir ve çözümlenebilir. Olaylar zamana göre sıralanır ve birbiriyle ilişkilidir. Tüketicinin ne olduğunu çözümlemesi için sıralanmış olay serisi gerekir.

İleti

İleti, tüketilecek veya başka bir yerde depolanacak bir hizmet tarafından üretilen ham veridir. İleti, ileti işlem hattını tetikleyen verileri içerir. İletinin yayımcısı, tüketicinin iletiyi nasıl işlediğine yönelik bir beklentiye sahiptir. İki taraf arasında bir sözleşme mevcuttur. Örneğin, yayımcı ham verileri içeren bir ileti gönderir ve tüketicinin bu verilerden bir dosya oluşturmasını ve iş bittiğinde bir yanıt göndermesini bekler.

Şimdi Azure Event Grid, Azure Event Hubs ve Azure Service Bus'ın ne olduğunu hızla gözden geçirelim.

Azure Event Grid

Azure Event Grid, İleti Kuyruğa Alma Telemetri Aktarımı (MQTT) ve HTTP protokollerini kullanarak esnek ileti tüketim desenleri sunan yüksek oranda ölçeklenebilir, tam olarak yönetilen bir Pub Alt ileti dağıtım hizmetidir. Azure Event Grid ile cihaz verileriyle veri işlem hatları oluşturabilir, uygulamaları tümleştirebilir ve olay odaklı sunucusuz mimariler oluşturabilirsiniz.

Hizmet, olay odaklı ve reaktif programlamayı etkinleştiren bir olay omurgası sağlar. Yayımla-abone ol modelini kullanır. Yayımcılar olayları yayar, ancak olayların nasıl işleneceğini beklentileri yoktur. Aboneler, hangi olayları işlemek istediklerine karar verir.

Event Grid diğer Azure hizmetleriyle derinlemesine tümleşiktir ve üçüncü taraf hizmetlerle tümleştirilebilir. Olay tüketimini kolaylaştırır ve sürekli yoklama gereksinimini ortadan kaldırarak maliyetleri düşürür. Event Grid, olayları Azure’dan Azure dışı kaynaklara verimli ve güvenilir bir biçimde yönlendirir. Olayları kayıtlı abone uç noktalarına dağıtır. Olay iletisi, hizmet ve uygulamalardaki değişikliklere yanıt vermeniz için gereken bilgileri içerir. Event Grid bir veri işlem hattı değildir ve güncelleştirilmiş gerçek nesneyi teslim etmez.

Şu özelliklere sahiptir:

  • Dinamik olarak ölçeklenebilir
  • Düşük maliyet
  • Sunucusuz
  • Bir olayın en az bir kez teslimi

Event Grid iki sürümde sunulur: Azure'da tam olarak yönetilen bir PaaS hizmeti olan Azure Event Grid ve Azure Arc ile Kubernetes'te Event Grid, dağıtılan, şirket içinde veya bulutta olan her yerde Kubernetes kümenizde Event Grid'i kullanmanıza olanak tanır. Daha fazla bilgi için bkz . Azure Event Grid'e genel bakış ve Azure Arc ile Kubernetes'te Event Grid'e genel bakış.

Azure Event Hubs

Azure Event Hubs, büyük bir veri akışı platformu ve olay alımı hizmetidir. Saniyede milyonlarca olayı alabilir ve işleyebilir. Telemetri ve olay akışı verilerinin yakalanmasını, tutulmasını ve yeniden yürütülmesini kolaylaştırır. Veriler çok sayıda eşzamanlı kaynaktan gelebilir. Event Hubs, telemetri ve olay verilerinin çeşitli akış işleme altyapıları ve analiz hizmetleri için kullanılabilir hale getirilmesini sağlar. Veri akışları veya paketlenmiş olay toplu işlemleri olarak kullanılabilir. Bu hizmet, gerçek zamanlı işleme için hızlı veri alımına ve depolanan ham verilerin tekrar tekrar oynatımına olanak tanıyan tek bir çözüm sağlar. Akış verilerini, işleme ve analiz için bir dosyada yakalayabilir.

Şu özelliklere sahiptir:

  • Düşük gecikme süresi
  • Saniyede milyonlarca olay alabilir ve işleyebilir
  • Bir olayın en az bir kez teslimi

Daha fazla bilgi için bkz . Event Hubs'a genel bakış.

Azure Service Bus

Service Bus, ileti kuyrukları ve yayımlama-abone olma konularına sahip tam olarak yönetilen bir kurumsal ileti aracısıdır. Hizmet, işlemler, sipariş verme, yinelenen algılama ve anlık tutarlılık gerektiren kurumsal uygulamalara yöneliktir. Service Bus, bulut-yerel uygulamaların iş süreçlerine yönelik güvenilir durum geçişi yönetimi sağlamasına olanak tanır. Kaybedilmeyecek veya yinelenmeyecek yüksek değerli iletileri işlerken Azure Service Bus'ı kullanın. Bu hizmet ayrıca hibrit bulut çözümleri arasında yüksek oranda güvenli iletişimi kolaylaştırır ve mevcut şirket içi sistemleri bulut çözümlerine bağlayabilir.

Service Bus bir aracılı mesajlaşma sistemidir. Kullanan taraf iletileri almaya hazır olana kadar, iletileri bir "aracıda" (örneğin, bir kuyruk) depolar. Şu özelliklere sahiptir:

  • Yoklama gerektiren güvenilir zaman uyumsuz ileti teslimi (hizmet olarak kurumsal mesajlaşma). Service Bus kullanıyorsanız ve kuyruğu yoklamanıza gerek kalmadan ileti almanız gerekiyorsa, Service Bus'ın desteklediği TCP tabanlı protokolleri kullanarak uzun bir yoklama alma işlemi kullanarak bunu yapabilirsiniz.
  • İlk giriş ve ilk çıkış (FIFO), toplu işlem/oturumlar, işlemler, teslim edilemeyen harfleme, geçici denetim, yönlendirme ve filtreleme ve yinelenen algılama gibi gelişmiş mesajlaşma özellikleri
  • İletinin en az bir kez teslimi
  • İsteğe bağlı olarak iletilerin sıralı teslimi

Daha fazla bilgi için bkz . Service Bus'a genel bakış.

Hizmetleri karşılaştırması

Aşağıdaki tabloda üç hizmet karşılaştırılıyor: Event Grid, Event Hubs ve Service Bus.

Hizmet Purpose Tür ne zaman kullanılmalı
Event Grid Duyarlı programlama Olay dağıtımı (ayrık olaylar) Durum değişikliklerine yanıt verme
Event Hubs Büyük veri işlem hattı Olay akışı (seri) Telemetri ve dağıtılmış veri akışı
Service Bus Yük değerli kurumsal mesajlaşma İleti Sipariş işleme ve finansal işlemler

Hizmetleri birlikte kullanma

Bazı durumlarda, farklı rolleri yerine getirmek için hizmetleri yan yana kullanırsınız. Örneğin, bir e-ticaret sitesi siparişi işlemek için Service Bus'ı, site telemetrisini yakalamak için Event Hubs'ı ve bir öğe gönderildi gibi olaylara yanıt vermek için Event Grid'i kullanabilir.

Bazı durumlarda ise bir olay ve veri işlem hattı oluşturmak üzere hizmetleri birbirine bağlarsınız. Diğer hizmetlerdeki olaylara yanıt vermek için Event Grid kullanabilirsiniz. Verileri Azure Synapse Analytics'e geçirmek için Event Grid'i Event Hubs ile kullanma örneği için bkz . Azure Synapse Analytics'e büyük veri akışı. Aşağıdaki görüntüde veri akışı yapma iş akışı gösterilmektedir.

Event Hubs, Service Bus ve Event Grid'in birbirine nasıl bağlanabileceğini gösteren diyagram.

Aşağıdaki makalelere bakın: