Azure Event Hubs sunucusuz işlevlerle tümleştirin

Event Hubs
İşlevler
Application Insights
İzleyici

Verilerle Azure Event Hubs kullanan Azure İşlevleri ölçeklenebilir, uygun maliyetli ve büyük hacimli verileri neredeyse gerçek zamanlı olarak işlenebilecek sunucusuz bir mimariden yararlanabilir. Bu hizmetler birlikte sorunsuz bir şekilde ç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çeklendirmeye yönelik önemli noktalar ve teknikler vurgulanmış ve bu tümleştirmeden nasıl etkin bir şekilde yararlanacakları konusunda rehberlik velanmıştır.

Event Hubs temel kavramlar

Azure Event Hubs saniye başına milyonlarca olay alilebilen yüksek oranda ölçeklenebilir bir olay işleme hizmetidir. Tümleştirme için desenleri ve en iyi yöntemleri Azure İşlevleri, en iyi uygulamanın temel bileşenlerini anlamak Event Hubs.

Aşağıdaki diyagramda akış işleme Event Hubs aşağıdaki diyagramda yer almaktadır:

Event Hubs mimarisi

Ekinlikler

Olay, geçmişte meydana gelen bir gerçek olarak temsil edilen bir bildirim veya durum değişikliğidir. Olaylar sabittir ve Kafka'da konu olarak da adlandırılan bir olay hub'ları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 belirtilmezse, alınan olaylar olay hub'ı içinde bölümler arasında dağıtılır. Her olay tam olarak tek bir bölümde yazılır ve bölümler arasında çoklu döküme sahip bir olaydır. Her bölüm, kayıtların yalnızca ekleme düzeniyle yazıldığı bir günlük olarak çalışır. Bir işleme günlüğünün benzetmesi genellikle olayların bir bölümdeki bir sıranın sonuna nasıl ekli olduğunu açıklamak için kullanılır.

Bölümlere yazma

Birden fazla bölüm kullanılırsa, paralel günlüklerin aynı olay hub'ı içinde kullanılabilir. Bu davranış, birden çok paralellik düzeyi 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ından okunan ve yönetilen birden fazla tüketici tarafından tüketilebilir.

Bölüm tüketicileri

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

Daha fazla bilgi edinmek için bkz. Event Hubs özelliklerine derinlemesine bakın.

Olayları Azure İşlevleri

Azure İşlevleri için tetikleyici ve çıkış bağlamalarını Event Hubs. Bu bölüm, tetikleyiciler Azure İşlevleri olay hub'ı olay akışına gönderilen olaylara nasıl yanıt verir?

Tetiklenen bir Event Hubs örneği tek bir EventProcessorHost örneği tarafından de desteklenir. Tetikleyici (Event Hubs) yalnızca bir EventProcessorHost örneğinin verilen bölümde kira alamalarını sağlar.

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

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

İşlevi ilk kez etkinleştirildiğinde, işlevin yalnızca bir örneği vardır. İlk işlev örneğini çağır Function_1 bakalım. Function_1 , 10 bölümde kiralama tutan tek bir Function_1 örneğine sahip. Bu örnek, olayları 1-10 bölümlerinden okumaktır. Bu noktadan sonra, aşağıdakilerden biri gerçekleşir:

  • Yeni işlev örnekleri gerekmez:İşlevler ölçeklendirme mantığının etkili olmadan önce 1.000 olaydan hepsini işleyebilirsiniz. Bu durumda, 1.000 ileti de tarafından Function_1 iş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şleyeneden daha fazla ileti olduğunu belirler ve ardından yeni bir işlev uygulaması örneği () Function_2 oluşturur. Bu yeni işlev, EventProcessorHost'un ilişkili bir örneğine de sahiptir. Temel alınan olay hub'ı, yeni bir konak örneğinin iletileri okumaya çalıştığını algılasa da, konak örnekleri genelinde bölümlerin yükünü dengeler. Örneğin, 1-5 bölümlerine ve bölüm Function_1 6-10'a Function_2 atanabilir.

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

  • N işlev örneğidaha eklendi: olay tabanlı ölçeklendirme veya diğer otomatik veya el ile mantık, hem hem de işleyenden daha fazla iletiye sahip olduğunu belirler, işlev uygulaması Function_N örnekleri Function_2 oluşturulur. Örnekler, N'nin olay hub'ı bölümleri sayısına eşit veya daha büyük olduğu bir noktaya oluşturulur. Örneğimizde, Event Hubs yine yük dengelemesi sağlar, bu örnekte örnekleri Function_1 ... Function_10 .

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

Ölçeklendirme gerçekleşirken N örnek, olay hub'ı bölümleri sayısından büyük bir sayı olabilir. Olay odaklı ö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 oluşabilir. Bu durumda, EventProcessorHost örnekleri yalnızca diğer örneklerden kullanılabilir hale geldiklerinde bölümlere kilitler elde etmek için aynı tüketici grubundan yalnızca bir işlev örneğinin kilitleri olan bölümlere erişmesi/okuması gerekir.

Tüm işlev yürütmesi tamamlandığında (hatayla veya hata olmadan), ilgili depolama hesabına denetim noktaları eklenir. Onay işareti başarılı olduğunda, 1.000 ilanın hepsi bir daha asla alınamayacaktır.

Tüketim ve azure planlarında dinamik, olay tabanlı ölçeklendirme Premium mümkündür. Kubernetes'te barındırılan işlev uygulamaları, uygulama için KEDA ölçekleyiciden de Event Hubs. Şu anda işlev uygulaması Ayrılmış (App Service) planında barındırıldı ve iş yükünüze göre doğru örnek sayısını belirlemenizi gerektiren olay tabanlı ölçeklendirme mümkün değildir.

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

Sonraki adımlar

  • Sunucusuz olay işlemeyi izleme, sunucusuz olay odaklı mimarileri izleme konusunda rehberlik sağlar.
  • Sunucusuz olay işleme, kod örnekleri ve önemli konuların tartışmaları ile birlikte bu tür tipik bir mimariyi ayrıntılı olarak ele alan bir başvuru mimarisidir.
  • Event Hubs ile sunucusuz olay işlemede toplu işi Event Hubs, başvuru mimarisinin bu bölümlerinin nasıl işlemektedir?