Azure mesajlaşma hizmetleri arasında seçim Event Grid, Event Hubs ve Service Bus
Azure, bir çözüm genelinde 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.
Olay ve ileti hizmetleri karşılaştırması
Bir olayı teslim alan hizmetler ile ileti teslimi yapılan 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, durum değişikliğini bildirir 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 bilgiler içerebilir ancak dosyanın kendisini içermez. Ayrık olaylar, ölçeklendirilmesi gereken sunucusuz çözümler için idealdir.
Seri olaylar 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.
Azure Event Grid
Event Grid, olay temelli duyarlı programlamayı sağlayan bir olay devre kartıdır. Yayımla-abone ol modelini kullanır. Yayımcılar olayları yayabilir ancak olayların nasıl işlen bir şekilde işlenesi konusunda bir beklentiye sahip olmaz. Aboneler hangi olayları işlemek istediğinize karar verir.
Event Grid, Azure hizmetleriyle 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
Daha fazla bilgi için bkz. Event Grid genel bakış.
Azure Event Hubs
Azure Event Hubs bir büyük 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 verilerini çeşitli akış işleme altyapıları ve analiz hizmetleri için kullanılabilir yapmak için izin verir. Veri akışları veya paketlenmiş olay toplu işleri olarak kullanılabilir. Bu hizmet, gerçek zamanlı işleme için hızlı veri alımına ve depolanan ham verilerin tekrar tekrar yeniden oynat alınmasına olanak sağlayan 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
- Saniye başına milyonlarca olay alma ve işleme
- Bir olayın en az bir kez teslimi
Daha fazla bilgi için bkz. Event Hubs 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, sıralama, 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. Kaybedilmesi veya yinelenmesi mümkün olmayan 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ğlar.
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)
- İlk gelen ve ilk çıkar (FIFO), toplu işlem/oturumlar, işlemler, geri gönderme, zamana bağlı denetim, yönlendirme ve filtreleme ve yinelenen algılama gibi gelişmiş mesajlaşma özellikleri
- İleti teslimi en az bir kez
- İletilerin isteğe bağlı olarak sipariş edilen teslimi
Daha fazla bilgi için bkz. Service Bus genel bakış.
Hizmetleri karşılaştırması
| Hizmet | Amaç | Tür | Kullanılması gereken durumlar |
|---|---|---|---|
| Event Grid | Duyarlı programlama | Olay dağıtımı (ayrık) | 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 Service Bus için Event Hubs, site telemetrisini yakalamak için Event Grid ve bir öğenin sevk edildiği gibi olaylara yanıt vermek için Event Grid 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 bir veri ambarına geçirmek amacıyla Event Grid’i Event Hubs ile birlikte kullanma örneği için bkz. Veri ambarına veri akışı yapma. Aşağıdaki görüntüde veri akışı yapma iş akışı gösterilmektedir.
Sonraki adımlar
Aşağıdaki makalelere bakın: