Event Hubs'ı Azure'daki sunucusuz işlevlerle tümleştirme

Azure Event Hubs
Azure Functions
Azure Monitor

Azure İşlevleri ile birlikte Azure Event Hubs kullanan çözümler ölçeklenebilir, uygun maliyetli ve büyük hacimli verileri neredeyse gerçek zamanlı olarak işleyebilen sunucusuz mimariden yararlanır. Bu hizmetler birlikte sorunsuz çalışsa da, ilişkilerine karmaşıklık katan birçok özellik, ayar ve karmaşıklık vardır. Bu makalede performans, dayanıklılık, güvenlik, gözlemlenebilirlik ve ölçekle ilgili önemli konuları ve teknikleri vurgulayarak bu tümleştirmeden nasıl etkili bir şekilde yararlanılması konusunda rehberlik sağlanır.

Event Hubs temel kavramları

Azure Event Hubs saniyede milyonlarca olay alabilen yüksek oranda ölçeklenebilir bir olay işleme hizmetidir. Azure İşlevleri tümleştirme için desenlere ve en iyi yöntemlere geçmeden önce Event Hubs'ın temel bileşenlerini anlamak en iyisidir.

Aşağıdaki diyagramda Event Hubs akış işleme mimarisi gösterilmektedir:

Event Hubs mimarisi

Ekinlikler

Olay, geçmişte gerçekleşen bir olgu olarak temsil edilen bir bildirim veya durum değişikliğidir. Olaylar sabittir ve Kafka'dakonu olarak da adlandırılan bir olay hub'ında kalıcıdır. Olay hub'ı bir veya daha fazla bölümden oluşur.

Bölümler

Bir bölüm gönderen tarafından belirtilmediğinde, alınan olaylar olay hub'ında bölümler arasında dağıtılır. Her olay tam olarak bir bölümde yazılır ve bölümler arasında birden çok yayına katılmaz. Her bölüm, kayıtların yalnızca ekleme düzeninde yazıldığı bir günlük olarak çalışır. İşleme günlüğünün benzetmesi genellikle olayların bir bölümdeki bir dizinin sonuna nasıl eklendiğini açıklamak için kullanılır.

Bölümlere yazma

Birden fazla bölüm kullanıldığında, paralel günlüklerin aynı olay hub'ından kullanılmasına olanak tanır. Bu davranış birden çok paralellik derecesi sağlar ve tüketiciler için aktarım hızını artırır.

Tüketiciler ve tüketici grupları

Bir bölüm, her biri kendi uzaklıklarını okuyan ve yöneten birden fazla tüketici tarafından kullanılabilir.

Bölüm tüketicileri

Event Hubs, tüketici grupları kavramına sahiptir. Bu kavram, her biri olay akışının ayrı bir görünümüne sahip olmak için birden çok tüketen uygulamaya olanak tanır ve akışı kendi hızlarında ve kendi uzaklıklarıyla bağımsız olarak okur.

Daha fazla bilgi edinmek için bkz. Event Hubs kavramları ve özelliklerine ayrıntılı bakış.

olayları Azure İşlevleri ile kullanma

Azure İşlevleri, Event Hubs için tetikleyici ve çıkış bağlamalarını destekler. Bu bölüm, Azure İşlevleri tetikleyicileri kullanarak bir olay hub'ı olay akışına gönderilen olaylara nasıl yanıt verdiğini kapsar.

Event Hubs ile tetiklenen bir işlevin her örneği tek bir EventProcessorHost örneği tarafından desteklenir. Tetikleyici (Event Hubs tarafından desteklenir), belirli bir bölümde yalnızca bir EventProcessorHost örneğinin kira alabilmesini sağlar.

Örneğin, aşağıdaki özelliklere sahip bir olay hub'ı düşünün:

  • 10 bölüm.
  • Tüm bölümlere eşit olarak dağıtılan 1.000 olay ve her bölümdeki farklı sayıda ileti.

İşleviniz ilk kez etkinleştirildiğinde, işlevin yalnızca bir örneği vardır. İlk işlev örneğini Function_1çağıralım. Function_1 , 10 bölümün hepsinde kira tutan tek bir EventProcessorHost örneğine sahiptir. Bu örnek, 1-10 bölümlerinden olayları okuyor. Bu noktadan sonra aşağıdakilerden biri gerçekleşir:

  • Yeni işlev örnekleri gerekli değildir: Function_1 İşlev ölçeklendirme mantığı etkili olmadan önce 1.000 olayın tümünü işleyebilir. Bu durumda, 1.000 iletinin tümü tarafından Function_1işlenir.

    Event Hubs ve İşlevler tek örneği

  • Ek bir işlev örneği eklenir: olay tabanlı ölçeklendirme veya diğer otomatik veya el ile mantık, işleyebileceğinden daha fazla ileti olduğunu Function_1 saptayabilir ve ardından yeni bir işlev uygulaması örneği (Function_2 oluşturur). Bu yeni işlevin ilişkili bir EventProcessorHost örneği de vardır. Temel olay hub'ı yeni bir konak örneğinin iletileri okumayı denediğini algıladıkça, konak örnekleri genelinde bölümlerin yükünü dengeler. Örneğin, bölüm 1-5'e Function_1 ve bölüm 6-10'a Function_2atanabilir.

    İki örneği olan Event Hubs ve İşlevler

  • N işlev örneği daha eklendi: olay tabanlı ölçeklendirme veya diğer otomatik veya el ile mantık, hem hem de Function_1Function_2 işleyenenden daha fazla ileti olduğunu belirler, yeni Function_N işlev uygulaması örnekleri oluşturulur. Örnekler, N'nin olay hub'ı bölüm sayısına eşit veya ondan büyük olduğu noktaya oluşturulur. Örneğimizde Event Hubs, bölümlerin yükünü yeniden dengeler. Bu örnekte örnekler Function_1arasında ...Function_10.

    Birden çok örneği olan Event Hubs ve İşlevler

Ölçeklendirme gerçekleştikçe, N örnekleri olay hub'ı bölümlerinin sayısından daha büyük bir sayı olabilir. Olay temelli ölçeklendirme örnek sayılarını dengelerken veya diğer otomatik veya el ile mantık bölümlere göre daha fazla örnek oluşturduğundan bu durum ortaya çıkabilir. Bu durumda , EventProcessorHost örnekleri yalnızca diğer örneklerden kullanılabilir hale geldikçe bölümlerin kilitlerini alır, çünkü herhangi bir zamanda aynı tüketici grubundan yalnızca bir işlev örneği kilitlerinin bulunduğu bölümlerden erişebilir/okuyabilir.

Tüm işlev yürütmesi tamamlandığında (hatayla veya hata olmadan), denetim noktaları ilişkili depolama hesabına eklenir. Denetim noktası oluşturma başarılı olduğunda, 1.000 iletinin tümü bir daha asla alınmaz.

Tüketim ve Premium Azure planlarıyla dinamik, olay tabanlı ölçeklendirme mümkündür. Kubernetes'te barındırılan işlev uygulamaları, Event Hubs için KEDA ölçeklendiriciden de yararlanabilir. İşlev uygulaması bir Ayrılmış (App Service) planında barındırıldığında olay tabanlı ölçeklendirme şu anda mümkün değildir ve bu da iş yükünüz temelinde doğru örnek sayısını belirlemenizi gerektirir.

Daha fazla bilgi edinmek için bkz. Azure İşlevleri için Azure Event Hubs bağlamaları ve Azure İşlevleri için Azure Event Hubs tetikleyicisi.

Katkıda Bulunanlar

Bu makale Microsoft tarafından yönetilir. Başlangıçta aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazar:

Genel olmayan LinkedIn profillerini görmek için LinkedIn'de oturum açın.

Sonraki adımlar