Veri Azure İşlevleri kullanırken Event Hubs hem performansı hem de ölçeği etkileyen birçok özellik ve karar vardır. Bu makalede, bu dinamik eşleştirmeden en iyi şekilde şekilde en iyi şekilde şekilde çıkılması için temel rehberlik sağlar.
İşlev gruplama
Genellikle, bir işlev olayları tek tek iş birimini kapsüller. Bu çalışma, bir olayın yeni bir veri yapısına dönüştürmesini veya aşağı akış uygulamaları için bir veri işlem hattında bir zenginleştirme adımını içerebilir.
İşlevleri nasıl gruplayabilirsiniz? İşlev uygulamalarınızı performans ve ölçeklendirme özellikleri üzerinde doğrudan bir etkisi olabilir. Çeşitli en iyi yöntemler erişim haklarına, dağıtıma ve kodunuzu çağıran kullanım düzenlerine göre gruplama önerir.
Depolama ve tüketici grubuyla ilgili dikkat edilmesi gereken noktalarla birlikte işlevleri gruplamayla ilgili diğer kılavuzlar şunlardır:
bir işlev uygulamasında tek bir işlevi barındırma:Yalıtılmış bir Event Hubs tetiklenen işlev, özellikle CPU veya bellek kullanımı yoğun olan diğer çalışan işlevler arasındaki kaynak tartışmasını azaltır. Bu avantaj, her işlevin kendi bellek ayak izine ve işlevlerin çalıştırılıyor olduğu işlev uygulamasının ölçeğini doğrudan etkileyebilecek kullanım düzenlerine sahip olduğundan oluşur.
Her işlev uygulaması için ayrı depolama hesapları:depolama hesaplarını işlev uygulamaları arasında paylaşmaktan kaçının. Ayrıca, diğer depolama işlemleri veya ihtiyaçları için işlev uygulaması için kullanılan depolama hesabını da kullanmayın. Denetim noktası nedeniyle tetiklenen işlevler büyük olasılıkla Event Hubs depolama işlemlerine sahip olabileceklerinden ayrı depolama hesapları kullanmak önemlidir.
Her işlev uygulaması için ayrılmış bir tüketici grubu oluşturun:Bir akış işleme çözümünde her tüketici uygulaması bir tüketici grubuna eşit olur. İşlev uygulaması, tüketici uygulamasına en iyi örnektir. Tüketici gruplarını işlev uygulamaları ve diğer tüketici uygulamaları arasında paylaşmayın. Aşağıdaki diyagram, her uygulamanın kendi ayrılmış tüketici grubuna sahip olduğu bir olay hub'ını okuyan iki işlev uygulaması örneği sağlar:
Özetle, her işlev uygulaması kendi atanmış tüketici grubuna sahip ayrı bir uygulama olarak algılanmalı. Bu, her tüketici için uzaklık bütünlüğünü sağlar ve bir olay akışı mimarisinde bağımlılıkları basitler. Bu yapılandırma, olay hub'ı ile tetiklenen her işlevin kendi işlev uygulamasını ve depolama hesabını sağlamanın yanı sıra en iyi performans ve ölçek için temel ayarlamaya yardımcı olur.
İşlev barındırma planları
İşlevlerin farklı planlarda nasıl ölçeklendirildiklerini gözden geçirmek, barındırma seçeneklerini değerlendirirken önemli bir adımdır.
Tüketim planı kullanılırken, varsayılan olarak her işlev uygulamasının kendi planı vardır. Tüketim planında işlev uygulamaları bağımsız olarak ölçeklendirin ve uzun süre çalışan görevlerden kaçınan en etkili uygulamalardır.
Premium ve Ayrılmış planlar genellikle daha yoğun CPU ve bellek kullanımına sahip birden çok işlev uygulaması ve işlevi barındırmak için kullanılır. Bu planlarda yer alan tüm işlev uygulamalarının plana ayrılan kaynakları paylaştığını unutmayın. İşlevlerin farklı yük profilleri veya benzersiz gereksinimleri varsa, bunları farklı planlarda barındırmak en iyisidir. Bu, özellikle akış işleme uygulamaları için doğrudur.
Event Hubs ölçeklendirme
Bir ad Event Hubs olduğunda, en yüksek performansı ve ölçeği sağlamak için değerlendirilmesi gereken birkaç önemli ayar vardır. Bu bölüm, depolamanın Standart katmanına ve Event Hubs ile birlikte kullanılırken ölçeklendirmeyi etkileyen benzersiz özelliklerine Azure İşlevleri. Farklı katmanlar hakkında daha fazla Event Hubs için bkz. Temel ve standart - premium ve ayrılmış katmanlar.
Aktarım hızı birimlerini anlama
Standart Event Hubs katmanında aktarım hızı, belirli bir süre içinde ad alanına giren ve ad alanlarından okunan veri miktarı olarak sınıflandırılır. Aktarım hızı birimi (TU), bir verim alanının desteklediği aktarım hızını hem ölçmek hem de yönetmek için Event Hubs mekanizmadır.
Başvuru için, Event Hubs kafka'daki bir kümeyle karşılaştırabilirsiniz. Kafka ile Event Hubs arasında kavramsal eşleme için bu tabloyu gözden geçirin.
Her işleme birimi saatlik olarak faturalandırılır ve bir ad alanı içinde tüm olay hub'ları arasında paylaşılır. Bu, hem yayımcılar hem de tüketiciler gibi tüm uygulama ve hizmetlerin, tek tek TUS sayısını seçerken hesabaılması gereken anlamına gelir. Azure İşlevleri, hem yayımlanan hem de olay hub'larından okunan bayt ve olay sayısını etkiler.
TUS sayısını belirleme vurgusu, giriş noktasının etrafında ortalar. Ancak, bu olayların işlenme hızı da dahil olmak üzere tüketici uygulamalarının toplam değeri de hesaplamaya dahil edilecektir.
Otomatik şişirme ile ölçeğin ölçeğini yukarıya ölçeklendirme
Yükün yapılandırılan TUS sayısının üzerine Event Hubs senaryolara uyum sağlayacak şekilde bir ad alanı üzerinde otomatik şişirme etkinleştirilebilir. Bu, hizmetten azaltmanın oluşmaması ve olayların dahil olduğu işlemenin kesinti olmadan devam etmelerini sağlar. SU'lar maliyetleri de etkileyen önemli ayarlardan biri olduğu için, otomatik şişirme özelliğinin avantajından yararlanmak fazla üretimle ilgili endişelerin ele almaya yardımcı olur.
Otomatik şişirme, özellikle sunucusuz çözümler bağlamında Event Hubs genellikle otomatik ölçeklendirmeyle karıştırılır ve bu özelliğin benzersiz bir özelliğidir. Event Hubs'daki bu özelliğin, seri artış senaryolarını desteklemek için TU'ların dinamik olarak artırılmasını desteklediğini ancak otomatik olarak havayı sönen veya ölçeği aşağı indiren bir özelliği olmadığını unutmayın.
Yüksek aktarım hızı gerektiren ve ayrılmış en fazla TU sayısıyla uyumu bulunamaz senaryolar için, Azure Event Hubs Premium katmanını veya Ayrılmış kümeyi göz önünde bulundurabilirsiniz.
Bölümler ve eşzamanlı işlevler
Bir olay hub'ı oluşturulduğunda bölüm sayısı belirtilmelidir. Bölüm sayısı sabit kalır ve Premium ve Dedicated katmanları dışında değiştirilemez. Uygulama tetikleyicisi Event Hubs eşzamanlı işlev uygulaması örneği sayısı bölüm sayısıyla eşleşme olasılığına sahiptir.
Tüketim ve Premium planlarında işlev uygulaması örnekleri gerektiğinde bölüm sayısını karşılayacak şekilde dinamik olarak ölçeğini uztar. Ayrılmış (App Service) planları, örneklerinizi el ile yapılandırmanızı veya otomatik ölçeklendirme şemasını ayarlamanızı gerektirir. Sonuç olarak, bölüm sayısı ile işlev uygulaması örnekleri arasındaki bire bir ilişki, akış işleme çözümünde en yüksek aktarım hızı için ideal hedeftir.
En iyi paralellik, bir tüketici grubu içinde birden çok tüketiciye sahip olarak elde edilir. Bu Azure İşlevleri, plan içindeki bir işlev uygulamasının birçok örneğine çevrilir. Sonuç, bölüm düzeyinde paralellik veya en yüksekparalellik derecesi olarak adlandırılır.
Başlangıçta en yüksek aktarım hızına ulaşmak için mümkün olduğunca çok bölüm yapılandırmak mantıklı olabilir ve olay hacminin daha yüksek olması olasılığını hesaba katabilirsiniz. Ancak, birçok bölüm yapılandırıldığında dikkate alınacak birkaç önemli faktör vardır:
Daha fazla bölüm daha fazla aktarım hızına neden olabilir: Paralellik derecesi tüketici sayısı (işlev uygulaması örnekleri) olduğu için, ne kadar çok bölüm varsa eşzamanlı aktarım hızı o kadar yüksek olabilir. Bu durum, bir olay hub'ı için belirlenen sayıda TUS'u diğer tüketici uygulamalarıyla paylaştığınızda önemlidir.
Daha fazla işlev daha fazla bellek gerektirir: İşlev uygulaması örneklerinin sayısı artarak plan içindeki kaynakların bellek ayak izi de artar. Bir noktada, çok fazla bölüm tüketiciler için performansı kötü etkileyebilir.
Aşağı akış hizmetlerinden gelen geri basıncı: Daha fazla aktarım hızı oluşturulurken, aşağı akış hizmetlerinden bunalma veya geri baskı alma potansiyeli ortaya çıkabilir. Tüketicinin çevre kaynaklar üzerinde sahip olduğu sonuçlar dikkate alındığında bu durum dikkate alınarak ortaya çıkar. Örnekler arasında diğer hizmetlerden azaltma, ağ doygunluğu ve aktarım hızının artmasıyla ortaya çıkabilir diğer kaynak bağlantısı biçimleri olabilir.
Seyrek doldurulmuş bölümler: Birçok bölümün ve düşük olay hacminin birleşimi, bölümler arasında yedek olarak dağıtılan verilere yol açabilirsiniz. Bunun yerine, daha az sayıda bölüm İşlevlerin tüketmesi için daha iyi performans ve kaynak kullanımı sağlar.
Kullanılabilirlik ve tutarlılık
Bölüm anahtarı veya kimliği belirtilmezse, Event Hubs hizmeti gelen bir olayı bir sonraki kullanılabilir bölüme yönlendirer. Bu yaklaşım yüksek kullanılabilirlik sağlar ve tüketiciler için aktarım hızını artırmaya yardımcı olur.
Sıralama önemli olduğunda, yayımlanan olayların sıralamasını korumak için belirli bir bölüm belirtilebilir. Aynı bölümden okunan bir tüketici uygulaması daha sonra olayları sırayla işebilir. Bu ödün tutarlılık sağlar ancak kullanılabilirliği tehlikeye attırıyor. Yaklaşımı yalnızca olay sıralama bir gereksinim olduğunda kullanın.
İşlevler için sıralama, olaylar belirli bir bölümde yayımlanır ve Event Hubs bir işlev aynı bölüme kiralama elde eder. Şu anda, bir bölümü çıkış bağlaması Event Hubs yapılandırma özelliği desteklenmiyor. Bunun yerine, belirli bir Event Hubs yayımlamak için en iyi yaklaşım, en iyi VERI SDK'lerinden birini kullanmaktır.
Kullanılabilirlik ve tutarlılığın Azure Event Hubs daha ayrıntılı bir açıklama için bu makaleyi gözden geçirmenizi öneririz.
Event Hubs tetikleyicisi
Bu bölüm, en yüksek performans için tetiklenen işlevleri en iyi duruma Event Hubs ayarlara ve dikkat edilecek noktalara odaklanır. Faktörler toplu işlem, örnekleme ve olay hub'ı tetikleyici bağlama davranışını etkileyen ilgili özellikleri içerir.
Toplu İşleme
Olay hub'ları tarafından tetiklenen işlevler, bir olay koleksiyonunu veya aynı anda bir olayı işleyen şekilde yalıtabilirsiniz. Her bir işlev çağırma işleminin ek yükü nedeniyle bir olay toplu işleminin işlemesi daha verimlidir. Yalnızca tek bir olayı işlemeniz gerekmadıkça, işleviniz çağrıldığında birden çok olayı işley için yapılandırıldı.
Tetikleyici bağlaması için toplu Event Hubs etkinleştirme dilleri arasında değişir:
C# içinde, öznitelikte tür için bir dizi belirlense kardinalite otomatik olarak
EventHubTriggeryapılandırılır.JavaScript, Python ve diğer diller, işlev için function.json dosyasında kardinalite özelliği çok değerine ayarlanırsa toplu işlemeyi etkinleştirir.
Toplu işlemenin nasıl etkinleştiril olduğu hakkında daha fazla bilgi edinmek için desteklenen her dil için öznitelik ve ek açıklama seçeneklerine bakın.
Tetikleyici ayarları
host.json dosyasındaki çeşitli yapılandırma ayarları, uygulama için tetikleyici bağlamanın performans Event Hubs önemli bir rol Azure İşlevleri:
maxBatchSize: Bu ayar, işlevin çağrıldığında aldığı en fazla olay sayısını temsil eder. Bunun en az olay sayısı değil, en yüksek değer olduğunu fark etmek önemlidir. Alınan olay sayısı bu miktardan azsa işlev hala kullanılabilir olan sayıda olayla çağrılır. En düşük toplu iş boyutunu ayarayamdıraz.
prefetchCount: Performans iyileştirmesi için en önemli ayarlardan biri, önceden getirme sayısıdır. Bu değere, istemci için kaç ileti getirilip önbelleğe alınarak belirlenecek temel AMQP kanalı tarafından başvurur. Önceden ayarlama sayısı değerden büyük veya ona eşit olmalı ve genellikle bu miktarın
maxBatchSizekatlarına ayarlanmıştır. Bu değerin ayardan daha küçük birmaxBatchSizesayıya ayarnarak performans üzerinde olumsuz bir etkisi olabilir.batchCheckpointFrequency: Toplu işler işleviniz tarafından işlendiğinden, bu değer bir denetim noktasının oluşturulma oranını belirlemek için kullanılır. Varsayılan olarak, bu değer olarak ayarlanır, yani bir işlev bir toplu işi başarıyla işledikten sonra
1bir denetim noktası üretir. Tüketici grubunda her okuyucu için bölüm düzeyinde bir denetim noktası oluşturulacaktır. Bu ilginç blog gönderisi, bu ayarın neden olduğu davranış ve olayların yeniden yürütme ve yeniden denemelerini nasıl etkiley dair bazı ek içgörüler sağlar.
Tetikleyici bağlaması için ayarlığınız, çeşitli performans testleri ve yinelemeler boyunca belirlenecektir. Bu seçenekleri uygun şekilde ayarlamak için değişikliklerin sürekli olarak ve tutarlı bir şekilde ölçülebilir şekilde kullanılması önerilir. Varsayılan değerler, çoğu olay işleme çözümü için başlangıç noktası sağlama çabasıdır.
Denetim noktası oluşturma
Denetim noktası uygulama kavramını anlamak, tetiklenen işlevler Event Hubs kritik öneme sahiptir. Olaylar işlenirken ve toplu denetim noktası sıklığına ilişkin ayar karşılendiğinde denetim noktası için İşlevler ana bilgisayarının sorumluluğundadır.
Denetim noktası ile işlevinizin olayları işlemesi arasındaki ilişkiyi anlamak için aşağıdaki kavramlar önemlidir:
Özel durumlar hala başarılı sayılır: İşlev işlemi olayları işleme sırasında kilitlenmezse, işlevin tamamlanması başarılı olarak kabul edilir. Özel durumları yakalama ve işleme, yine de işlev kodunda savunma yaklaşımı olacaktır. Başarılı olduğunda, İşlevler ana bilgisayarı toplu iş sıklığı denetim noktası ayarını değerlendirir ve işlem sırasında meydana gelen özel durumlara bakılmaksızın, bu denetim noktasına ulaşıldı ise bir denetim noktası oluşturur.
Toplu iş sıklığı önemlidir: Yüksek hacimli olay akışı çözümlerde batchCheckpointFrequency ayarını 1'den büyük bir değere değiştirmek yararlı olabilir. Bu değerin artırılması, bir denetim noktasının oluşturulma oranının azaltılmasına yardımcı olabilir ve bu da depolama hesabına yapılan I/O işlemlerinin sayısını azaltır ve daha yüksek performans sağlar.
Yeniden yürütmeler olabilir: İşlev tetikleyici bağlaması ile her çağrıldığında, Event Hubs sürdürülecek yeri belirlemek için en son denetim noktasını kullanır. Her tüketici için uzaklığın her tüketici grubu için bölüm düzeyinde kayded olduğu vurgulandı. İşlevin son çağrılma işlemi sırasında bir denetim noktası oluşmazsa ve yeniden çağrıldığında yeniden yürütmeler gerçekleşir. Yinelenenleri ve yinelenenleri kaldırma teknikleri hakkında daha fazla bilgi edinmek için sonraki makaledeki Teklik'e bakın.
Hata işleme ve yeniden denemeler için en iyi yöntemleri göz önünde bulundurarak denetim noktası uygulamanın anlaşılması kritik öneme sahip olur. Bu, bu makalenin sonraki bir bölümünde ele alınmaktadır.
Telemetri Örnekleme
Azure İşlevleri, Application Analizler için yerleşik destek sağlar. Bu özellik sayesinde işlevlerinizin içinde oluşan çalışma zamanı özel durumları hakkında günlük, performans ve bilgi toplayabilirsiniz. Bu güçlü kurulum, performansı etkileyecek bazı önemli yapılandırma seçenekleri sunar. İzleme ve performansla ilgili önemli ayarlardan ve önemli noktalardan bazıları:
Telemetri örneklemesinietkinleştirme: Yüksek aktarım hızı senaryoları için ihtiyacınız olacak telemetri ve bilgi miktarını değerlendirmeniz gerekir. İşlevin performansını gereksiz telemetri verileri Analizler ölçümlerle düşürmeyi önlemek için Application Analizler'daki telemetri örnekleme özelliğini gözden geçirebilirsiniz.
Toplama ayarlarını yapılandırma: Verilerin toplanmış ve Application Analizler'a gönderilme sıklığını Analizler. Bu yapılandırma ayarı host.json dosyasında ve diğer birçok örnekleme ve günlüğe kaydetme ile ilgili seçenektir. Daha fazla bilgi için bkz. Toplayıcıyı yapılandırma.
AzureWebJobDashboard'ıdevre dışı bırakma: Bu ayar, Azure İşlevleri çalışma zamanının 1.x sürümünü hedef alan uygulamalar için bağlantı dizesini, WebJobs panosu günlüklerini tutmak için Azure SDK tarafından kullanılan bir depolama hesabına depolar. Web Analizler için Application Analizler kullanılıyorsa, bu ayar kaldırılmalıdır. Daha fazla bilgi edinmek için bkz. AzureWebJobsDashboard ayar başvurusu.
Application Analizler'nin örnekleme olmadan etkinleştirildiğinde tüm telemetri verileri gönderildiğini ifade etmek önemlidir. Tüm olaylar hakkında veri göndermek, özellikle yüksek aktarım hızına sahip olay akışı senaryolarında işlevin genel performansını olumsuz etkileyebilir.
Örneklemeden yararlanmak ve izleme için gereken telemetri miktarını sürekli değerlendirmek, en iyi performans için kullanılabilen çok sayıda önemli ayardan birisidir. Telemetri, toplamada genel platform sistem durumu değerlendirmesi ve arada sırada sorun giderme için kullanılmalıdır ve temel iş ölçümlerini yakalamaz. Daha fazla bilgi için bkz. Örneklemeyi yapılandırma.
Çıkış bağlaması
İşlevden olay akışına yayımlamak, bir işlev için çıkış bağlaması kullanılarak Event Hubs. Bu bağlamayı kullanmanın avantajlarından bazıları şunlardır:
Kaynak yönetimi:Bağlama, hem istemci hem de bağlantı yaşam döngülerini sizin için halleder. Bu, bağlantı noktası tükenmesi ve bağlantı havuzu yönetimi ile ortaya çıkabilecek sorunlar için olası sorunları azaltır.
Daha azkod: Bağlama, temel alınan SDK'yı soyutlar ve olayları yayımlamak için gereken kod miktarını azaltır. Bu, yazması ve bakımının daha kolay olduğu bir kodla sonuç verir.
Toplu işlem:Birden çok dilde, bir olay akışında verimli bir şekilde yayımlamak için toplu işleme de destek sağlar. Bu, performansı geliştirebilir ve olayları gönderen kodu kolaylaştırmanıza yardımcı olabilir.
Uygulama için desteklenen dillerin listesini ve ilgili geliştirici kılavuzlarını Azure İşlevleri kesinlikle önerilir. Her dil için Bağlamalar bölümünde ayrıntılı örnekler ve belgeler yer almaktadır.
Toplu İşleme
İşlevin yalnızca tek bir olay yayımlaması durumunda bağlamayı dönüş değeriyle yapılandırmak yaygın bir yaklaşımdır. İşlev yürütmesi her zaman olayı gönderen bir deyimle sona erdiğinde bu yararlı olur. Dönüş değerinin kullanımı, yalnızca bir olay dönüşen zaman uyumlu işlevler için kullanılmalıdır.
Bir akışa birden çok olay gönderirken performansı artırmak için toplu işlem teşvik edilecektir. Toplu işleme, bağlamanın olayları mümkün olan en verimli şekilde yayımlamaya olanak sağlar.
C#, Java, Python ve JavaScript'te Event Hubs bağlama ile birden çok olay gönderme desteği mevcuttur.
C'de birden çok olay çıktısı #
ICollectorC# içinde IAsyncCollector bir işlevden birden çok olay gönderirken ve türlerini kullanın.
yöntemi
ICollector<T>.Add()hem zaman uyumlu hem de zaman uyumsuz işlevlerde kullanılabilir. Çağrılır çağrılır çağrılmaz add işlemi yürütülür.IAsyncCollector<T>.AddAsync()yöntemi, olayları olay akışına yayımlanacak şekilde hazırlar. Zaman uyumsuz bir işlev yazıyorsanız, yayımlanmış olayları daha iyiIAsyncCollectoryönetmek için işlevini kullansanız gerekir.
C# kullanarak hem tek hem de birden çok olay yayımlama örnekleri için belgelere bakın.
Azaltma ve geri basıncı
Azaltma ile ilgili dikkat edilmesi gerekenler yalnızca çıkış bağlaması için de geçerlidir Event Hubs aynı zamanda Azure Cosmos DB gibi Azure hizmetleri için de geçerlidir. Genel olarak, bu hizmetler için geçerli olan limitleri ve kotaları tanımanız ve buna göre planlama yapmak önemlidir.
Aşağı akış hatalarını işlemek için AddAsync ve FlushAsync'i .NET Azure İşlevleri için bir özel durum işleyicisinde sarmalayarak IAsyncCollector özel durumlarını yakalayabilir veya çıkış bağlamalarını kullanmaz ve doğrudan Event Hubs SDK'larını kullanabilirsiniz.
İşlev kodu
Bu bölüm, bir işlev tarafından tetiklenen bir işlevden olayları işlemeye kod yazarken dikkate Event Hubs alanları kapsar.
Zaman uyumsuz programlama
İşlevin engelleyici olmayan, zaman uyumsuz kodun kullanılması önerilir. Bu, I/O çağrıları söz konusu olduğunda önemlidir.
İşlevlerde zaman uyumsuz programlamayı göz önünde bulundurarak, takip edilecek bazı temel yönergeler vardır:
Tüm zaman uyumsuz veya hepsi zaman uyumlu: Bir işlev zaman uyumsuz olarak çalıştıracak şekilde yapılandırılmışsa, tüm I/O çağrılarını da zaman uyumsuz olması gerekir. Çoğu durumda, kısmen zaman uyumsuz olmak tamamen zaman uyumlu olan koddan daha kötü olabilir. İşlevin uygulanması için zaman uyumsuz veya zaman uyumlu seçin ve tüm adımları izleyin.
Çağrıları engellemekten kaçının: Engelleme çağrıları yalnızca çağrı tamamlandıktan sonra çağırana geri döner. Bu, hemen geri dönüş yapılan zaman uyumsuz çağrılardan farklıdır. C# içinde bir örnek, zaman uyumsuz bir işlemde Task.Result veya Task.Wait çağrısı olabilir.
Çağrıları engelleme hakkında daha fazla bilgi
Zaman uyumsuz işlemlerde engelleme çağrıları yapılırken, iş parçacığı havuzu açluğuna neden olabilir ve işlev işleminin kilitlenmesi. Bunun nedeni, bir engelleme çağrısının bekleyen özgün çağrıyı telafi etmek için başka bir iş parçacığının oluşturulmuş olmasıdır. Sonuç olarak, artık işlemi tamamlamak için iki kat fazla iş parçacığı gerekir.
İşlevin kilitlenmesi denetim noktasını güncelleştirmeyeceklerinden, zaman uyumsuz Event Hubs eşitlemenin zaman uyumsuz yaklaşım üzerinden kaçınmak özellikle önemlidir. İşlev bir sonraki çağrıldığında bu döngüde sona erer ve sonunda işlev yürütmeleri zaman içinde sona erer ve takılmış veya yavaş ilerlenecek gibi görünebilir.
Bu olayla ilgili sorun giderme genellikle tetikleyici ayarlarını gözden geçirmek ve bölüm sayısını artırmayı gerektirerek denemeler çalıştırmayla başlar. Araştırmalar, en büyük toplu iş boyutu veya önceden işleme sayısı gibi birkaç toplu işlem seçeneklerinin değiştirilmesine de neden olabilir. Bunun yalnızca uygun şekilde ayarlanmış olması gereken bir aktarım hızı sorunu veya yapılandırma ayarı olduğu izlenimi. Ancak temel sorun kodun kendisidir ve uygun çözüm için orada ele alınması gerekir.
Sonraki adımlar
Devam etmeden önce şu ilgili makaleleri gözden geçirmeyi göz önünde bulundurarak:
- İzleme
- Azure İşlevleri olay işleme
- Azure Işlevlerini özdeş giriş için tasarlama
- zaman uyumsuz rehberlik ASP.NET Core.
İlgili kaynaklar
- Sunucusuz olay Işlemesini izlemek sunucusuz olay odaklı mimarilerin izlenmesi hakkında rehberlik sağlar.
- Sunucusuz olay işleme , kod örnekleri ve önemli noktaların tartışılması ile bu türden tipik bir mimariyi ayrıntılarıyla açıklayan bir başvuru mimarisidir.
- Event Hubs ile sunucusuz olay Işlemede de toplu işleme ve filtreleme , başvuru mimarisinin bu bölümlerinin nasıl çalıştığı hakkında daha ayrıntılı bilgi için açıklanmaktadır.