Event Hubs ile ölçeklendirme

Event Hubs ile ölçeklendirmeyi etkileyen iki faktör vardır.

  • aktarım hızı birimleri (standart katman) veya işleme birimleri (premium katman)
  • Bölümler

İşleme birimleri

Olay hub'larının aktarım hızı kapasitesi, aktarım hızı birimleri tarafından denetlenmektedir. Aktarım hızı birimleri önceden satın alınan kapasite birimleridir. Tek bir aktarım hızı birimi şunları yapmanızı sağlar:

  • Giriş: Saniyede en fazla 1 MB veya saniyede 1.000 olay (hangisi önce gerçekleşirse).
  • Çıkış: Saniyede en fazla 2 MB veya saniyede 4.096 olay.

Satın alınan aktarım hızı birimlerinin kapasitesinin ötesinde giriş kısıtlanır ve Event Hubs bir ServerBusyException oluşturur. Çıkış azaltma özel durumları oluşturmaz, ancak yine de satın alınan aktarım hızı birimlerinin kapasitesiyle sınırlıdır. Yayımlama hızı özel durumları alırsanız veya daha yüksek çıkış görmeyi bekliyorsanız ad alanı için kaç tane işleme birimi satın aldığınızı denetlediğinizden emin olun. Aktarım hızı birimlerini Azure portalındaki ad alanlarının Ölçek sayfasından yönetebilirsiniz. Event Hubs API'lerini kullanarak aktarım hızı birimlerini program aracılığıyla da yönetebilirsiniz.

Aktarım hızı birimleri önceden satın alınır ve saat başına faturalandırılır. Satın alındıktan sonra işleme birimleri en az bir saat için faturalandırılır. Bir Event Hubs ad alanı için en fazla 40 işleme birimi satın alınabilir ve ad alanındaki tüm olay hub’larında paylaşılır.

Event Hubs'ın Otomatik Şişir özelliği, kullanım gereksinimlerini karşılamak için aktarım hızı birimi sayısını artırarak ölçeği otomatik olarak artırır. Aktarım hızı birimlerinin artırılması azaltma senaryolarını önler ve bu senaryolarda:

  • Veri giriş oranları, ayarlanan aktarım hızı birimlerini aşıyor.
  • Veri çıkış isteği hızları, ayarlanan aktarım hızı birimlerini aşıyor.

Event Hubs hizmeti, serverbusy hatalarıyla başarısız olan istekler olmadan yük minimum eşiği aştığında aktarım hızını artırır.

Otomatik şişirme özelliği hakkında daha fazla bilgi için bkz . Aktarım hızı birimlerini otomatik olarak ölçeklendirme.

İşlem birimleri

Event Hubs Premium , yönetilen çok kiracılı PaaS ortamında üstün performans ve daha iyi yalıtım sağlar. Premium katmanındaki kaynaklar CPU ve bellek düzeyinde yalıtılır, böylece her kiracı iş yükü yalıtılmış olarak çalışır. Bu kaynak kapsayıcısı, İşlem Birimi (PU) olarak adlandırılır. Her Event Hubs Premium ad alanı için 1, 2, 4, 8 veya 16 işleme Birimleri satın alabilirsiniz.

bir işleme birimiyle ne kadar veri alıp akış yapabileceğiniz, üreticileriniz, tüketicileriniz, alma ve işleme hızı gibi çeşitli faktörlere ve çok daha fazlasına bağlıdır.

Örneğin, bir PU ve bir olay hub'ı (100 bölüm) içeren Event Hubs Premium ad alanı, hem AMQP hem de Kafka iş yükleri için yaklaşık olarak yaklaşık 5-10 MB/sn giriş ve 10-20 MB/sn çıkış çekirdek kapasitesi sunabilir.

Premium katman ad alanı için RU'ları yapılandırma hakkında bilgi edinmek için bkz . İşlem birimlerini yapılandırma.

Not

Kotalar ve sınırlar hakkında daha fazla bilgi edinmek için bkz . Azure Event Hubs - kotalar ve sınırlar.

Bölümler

Event Hubs, bir olay hub'ına gönderilen olay dizilerini bir veya daha fazla bölüm halinde düzenler. Yeni olaylar geldikçe bu dizinin sonuna eklenir.

Image that shows an event hub with a few partitions.

Bölüm işleme günlüğü olarak düşünülebilir. Bölümler, aşağıdaki bilgileri içeren olay verilerini barındırıyor:

  • Olayın gövdesi
  • Olayı açıklayan kullanıcı tanımlı özellik paketi
  • Bölümdeki uzaklığı, akış dizisindeki sayısı gibi meta veriler
  • Kabul edildiği hizmet tarafı zaman damgası

Diagram that displays the older to newer sequence of events.

Bölümleri kullanmanın avantajları

Event Hubs, büyük hacimli olayların işlenmesine yardımcı olmak için tasarlanmıştır ve bölümleme iki şekilde yardımcı olur:

  • Event Hubs bir PaaS hizmeti olsa da, altında fiziksel bir gerçeklik vardır. Olayların sırasını koruyan bir günlüğün korunması, bu olayların temel alınan depolamada ve çoğaltmalarında birlikte tutulmasını gerektirir ve bu da bu tür bir günlük için aktarım hızı tavanı elde edilmesine neden olur. Bölümleme, aynı olay hub'ı için birden çok paralel günlük kullanılmasına ve bu nedenle kullanılabilir ham giriş-çıkış (GÇ) aktarım hızı kapasitesinin çarpılmasına olanak tanır.
  • Kendi uygulamalarınız bir olay hub'ına gönderilen olay hacmini işlemeye ayak uydurabilmelidir. Karmaşık olabilir ve önemli, ölçeklendirilmiş, paralel işleme kapasitesi gerektirir. Olayları işlemek için tek bir işlemin kapasitesi sınırlıdır, bu nedenle birkaç işleme ihtiyacınız vardır. Bölümler, çözümünüzün bu işlemleri nasıl besleyip her olayın net bir işleme sahibi olmasını sağlar.

Bölüm sayısı

Bölüm sayısı, olay hub'ı oluşturulurken belirtilir. Her fiyatlandırma katmanı için izin verilen bölüm sayısı üst sınırı ile bir arasında olmalıdır. Her katmanın bölüm sayısı sınırı için bu makaleye bakın.

Uygulamanızın söz konusu olay hub'ının en yoğun yükü sırasında gerekli olan en az beklediğiniz kadar bölüm seçmenizi öneririz. Premium ve ayrılmış katmanlar dışındaki katmanlar için, olay hub'ı oluşturulduktan sonra bölüm sayısını değiştiremezsiniz. Premium veya ayrılmış katmandaki bir olay hub'ı için, oluşturulduktan sonra bölüm sayısını artırabilirsiniz, ancak azaltamazsınız. Bölüm anahtarlarının bölümlere eşlenmesi değiştiğinde bölümler arasındaki akışların dağılımı değişir, bu nedenle uygulamanızda olayların göreli sırası önemliyse bu tür değişiklikleri önlemek için çok çalışmanız gerekir.

Bölüm sayısını izin verilen en yüksek değere ayarlamak caziptir, ancak her zaman olay akışlarınızın birden çok bölümden yararlanabileceğiniz şekilde yapılandırılması gerektiğini unutmayın. Tüm olaylarda veya yalnızca birkaç alt akışta mutlak düzen korumasına ihtiyacınız varsa, birçok bölümden yararlanamayabilirsiniz. Ayrıca, birçok bölüm işleme tarafını daha karmaşık hale getirir.

Fiyatlandırma söz konusu olduğunda olay hub'ında kaç bölüm olduğu önemli değildir. Standart katman için aktarım hızı birimleri (TU), premium katman için işleme birimleri (RU) ve ad alanı veya ayrılmış küme için kapasite birimleri (CU) sayısına bağlıdır. Örneğin, standart katmanın 32 bölümlü veya bir bölümlü olay hub'ı, ad alanı bir TU kapasitesine ayarlandığında tam olarak aynı maliyete neden olur. Ayrıca, ayrılmış kümenizin ad alanı veya CU'ları üzerindeki TU'ları veya RU'ları bölüm sayısından bağımsız olarak ölçeklendikleyebilirsiniz.

Bölüm, verileri paralel bir şekilde yayımlamanıza ve kullanmanıza olanak tanıyan bir veri düzenleme mekanizması olduğundan. En iyi ölçeği elde etmek için ölçeklendirme birimlerini (standart katman için aktarım hızı birimleri, premium katman için işleme birimleri veya ayrılmış katman için kapasite birimleri) ve bölümleri dengelemenizi öneririz. Genel olarak, bölüm başına en fazla 1 MB/sn aktarım hızı öneririz. Bu nedenle, bölüm sayısını hesaplamaya yönelik bir kural, beklenen maksimum aktarım hızını 1 MB/sn'ye bölmek olacaktır. Örneğin, kullanım örneğiniz 20 MB/sn gerektiriyorsa, en iyi aktarım hızını elde etmek için en az 20 bölüm seçmenizi öneririz.

Bununla birlikte, uygulamanızın belirli bir bölüme benzine sahip olduğu bir modeliniz varsa, bölüm sayısını artırmak yararlı olmaz. Daha fazla bilgi için bkz . kullanılabilirlik ve tutarlılık.

Olayları bölümlere eşleme

Gelen olay verilerini veri düzenleme amacıyla belirli bölümlere eşlemek için bölüm anahtarı kullanabilirsiniz. Bölüm anahtarı, gönderen tarafından belirtilip bir olay hub'ına geçirilen değerdir. Bölüm atamasını oluşturan statik karma işlevi aracılığıyla işlenir. Bir olayı yayımlarken bölüm anahtarı belirtmezseniz hepsini bir kez deneme ataması kullanılır.

Olay yayımcısı yalnızca bölüm anahtarını bilir, olayların yayımlandığı bölümü bilmez. Anahtar ile bölümün bu şekilde ayrılması göndereni aşağı akış işleme hakkında çok fazla bilgi sahibi olma gereksiniminden kurtarır. Cihaz veya kullanıcı başına benzersiz bir kimlik iyi bir bölüm anahtarı oluşturur, ancak ilgili olayları tek bir bölümde gruplandırmak için coğrafi bölge gibi diğer öznitelikler de kullanılabilir.

Bölüm anahtarı belirtmek, ilgili olayların aynı bölümde ve tam olarak geldikleri sırada bir arada tutulmasını sağlar. Bölüm anahtarı, uygulama bağlamınızdan türetilen ve olayların arasındaki ilişkiyi tanımlayan bir dizedir. Bölüm anahtarı tarafından tanımlanan olay dizisi bir akıştır. Bölüm, bu tür akışlar için çoğullanmış bir günlük deposudur.

Not

Olayları doğrudan bölümlere gönderebilmenize karşın, özellikle yüksek kullanılabilirlik sizin için önemli olduğunda bunu önermeyiz. Olay hub'ının kullanılabilirliğini bölüm düzeyine düşürmektedir. Daha fazla bilgi için bkz . Kullanılabilirlik ve Tutarlılık.

Sonraki adımlar

Aşağıdaki bağlantıları inceleyerek Event Hubs hakkında daha fazla bilgi edinebilirsiniz: