Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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ölmeler
Verim birimleri
Aktarım hızı birimleri, olay hub'larının aktarım hızı kapasitesini denetler. Aktarım hızı birimleri önceden satın alınan kapasite birimleridir. Tek bir aktarım hızı birimi aşağıdaki özellikleri 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 aldığınız aktarım hızı birimlerinin kapasitesini aşarsanız giriş kısıtlanır ve Event Hubs, ServiceBusy Reason değeriyle bir EventHubsException oluşturur. Egress kısıtlama hataları üretmez, ancak yine de satın aldığınız aktarım hızı birimlerinin kapasitesinin ötesine geçemez. Yayınlanma hızı istisnaları alıyorsanız veya daha yüksek çıkış bekliyorsanız, ad alanınız için kaç aktarım hızı birimi satın aldığınızı denetleyin. 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ı birimlerini önceden satın alır ve saatlik olarak ödersiniz. Aktarım hızı birimleri satın aldıktan sonra en az bir saat için ödeme alırsınız. Event Hubs ad alanı için en fazla 40 aktarım hızı birimi satın alabilirsiniz ve bu ad alanındaki tüm olay hub'ları bu aktarım hızı birimlerini paylaşır. Her olay hub'ının içindeki tüm bölümler ve tüketiciler bu aktarım hızı birimlerinin toplam giriş ve çıkış kapasitesini paylaşır, bu nedenle aynı bölümden okuyan birden çok tüketici kullanılabilir bant genişliğini paylaşır.
Event Hubs'ın Otomatik Artırma özelliği, kullanım gereksinimlerini karşılamak için aktarım hızı birimi sayısını artırarak otomatik olarak ölçeklendirir. Aktarım hızı birimlerinin artırılması, hız sınırlama 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, yük minimum eşiği aştığında aktarım kapasitesini artırır ve hiçbir istek ServerBusy hatalarıyla başarısız olmaz.
Otomatik şişirme özelliği hakkında daha fazla bilgi için, "Aktarım hızı birimlerini otomatik olarak ölçeklendirme" başlıklı belgeye bakın.
İş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, 6, 8, 10, 12 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.
PU'ları premium katman ad alanı için yapılandırma hakkında daha fazla bilgi için bkz. İşlem birimlerini yapılandırma.
Not
Kotalar ve sınırlar hakkında daha fazla bilgi için bkz. Azure Event Hubs - kotalar ve sınırlar.
Bölmeler
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.
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:
- Etkinliğin içeriği
- Olayı açıklayan kullanıcı tanımlı özellik paketi
- Bölümdeki konumu ve akış dizisindeki sayısı gibi meta veriler
- Kabul edildiği hizmet tarafı zaman damgası
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 sürdürülmesi, 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 bir aktarım hızı sınırına yol açar. Bölümleme, aynı olay hub'ı için birden çok paralel log kullanımına ve bu nedenle mevcut ham giriş-çıkış (GÇ) aktarım hızı kapasitesinin artırı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 süreçleri nasıl desteklediğini ve aynı zamanda her olayın belirli bir işleme sahibine nasıl atandığını gösterir.
Bölme sayısı
Bölüm sayısı, olay hub'ı oluşturulurken belirtilir. Her fiyatlandırma katmanı için izin verilen maksimum bölüm sayısı 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 birimleri (TU), premium katman için işleme birimleri (PU) ve ayrılmış katman için kapasite birimleri (CU) sayısına veya ad alanına bağlıdır. Örneğin, standart katmanda 32 bölümlü veya tek bölümlü bir olay merkezi, ad alanı bir TU kapasitesine ayarlandığında tam olarak aynı maliyeti oluşturur. Ayrıca, ad alanınızdaki TU veya PU'ları ya da özel kümenizin CU'larını bölüm sayısından bağımsız olarak ölçeklendirebilirsiniz.
Bölüm, paralel yayımlama ve tüketim sağlayan bir veri düzenleme mekanizmasıdır. Paralel işleme ve ölçeklendirmeyi desteklese de, toplam kapasite isim alanının ölçeklenebilirlik tahsisi ile sınırlı kalır. 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 dengeleyin.
İş yükü profilinizle başlayın: ortalama yük boyutu, saniye başına olaylar ve aktarım hızı düşüşlerine veya gecikme süresi artışlarına duyarlılık. Başlangıç noktası olarak aşağıdaki bölüm başına aktarım hızını kullanın ve ardından yük testleriyle doğrulayın:
- Standart katman: Bölüm başına ~1 MB/sn giriş ve ~2 MB/sn çıkış.
- Premium ve Ayrılmış katmanlar: Bölüm başına ~1-2 MB/sn giriş ve ~2-5 MB/sn çıkış.
Beklenen giriş ve çıkışlarınızı ilgili bölüm başına hızlara bölerek ve daha büyük sonucu alarak bölümleri tahmin edin. Gözlemlenen aktarım hızı veya gecikme süresi beklentileri karşılamıyorsa bölümleri artırın (yalnızca Premium ve Ayrılmış katmanlar) ve yeniden test edin.
Bölümler ayrıca tüketici paralelliği için tavanı da ayarlar. Bu tavanın nasıl çalıştığı tüketici türüne bağlıdır:
-
Epoch (özel) tüketiciler — (.NET, Java) ve (Python, JavaScript) dillerinin kullandığı, üretim AMQP iş yükleri için önerilen bir desendir. Bir tüketici grubundaki belirli bir bölüme aynı anda yalnızca bir epoch tüketicisi sahip olabilir. Bölümlerden daha fazla işlemci örneği dağıtırsanız, fazladan örnekler herhangi bir bölüme atanmaz ve mevcut bir sahip bir bölümü serbest bırakana kadar boşta kalır. Yeni bir epoch tüketicisi daha yüksek bir sahip düzeyiyle bağlanırsa, hizmet mevcut sahibin bağlantısını bir
ConsumerDisconnectedhatayla sonlandırır ve yeni tüketici devralır. - Dönem dışı tüketiciler — En fazla 5 dönem dışı alıcı aynı bölümü bir tüketici grubu içinde eşzamanlı olarak okuyabilir. Her alıcı aynı olayları (fan-out) görür, bu nedenle bu mod bölüm başına işleme aktarım hızını artırmaz. Bir dönem tüketicisini bir bölüme bağlamak, bu bölümdeki dönem dışı tüm tüketicilerin bağlantısını keser.
-
Kafka tüketicileri — Kafka tüketicileri AMQP dönemleri yerine grup koordinasyon protokollerini (
group.id) kullanır, ancak bölüm sahipliği modeli eşdeğerdir: her bölüm aynı anda bir tüketici grubu içinde tam olarak bir tüketici üyesine atanır. Yeni bir üye katıldığında veya mevcut bir üye ayrıldığında, grup bölüm atamalarını yeniden dengeler ve yeniden dağıtır. Bölümlerden daha fazla tüketici üyesi varsa, fazla üyeler atama almaz ve gelecekteki yeniden dengeleme bir bölümü boşaltana kadar boşta kalır. Geçici bağlantı kesilmelerinden kaynaklanan gereksiz yeniden dengelemeyi azaltmak için her tüketici örneği için benzersiz birgroup.instance.id(statik üyelik) ayarlayın.
Uygulamada bölme sayısı, AMQP dönem tüketicileri veya Kafka tüketicileri kullanmanıza bakılmaksızın tüketici grubu başına düşen maksimum paralel tüketici sayısına eşittir. Ölçek genişletme planı yaparken, bunu bölüm sayınıza dahil etmelisiniz.
Uygulamanızın belirli bir bölüme benzisi 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ölmelere 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 bir karma fonksiyonu aracılığıyla işlenir. Bir olayı yayınlarken bir bölüm anahtarı belirtmezseniz, dağıtımlı atama 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.
İlgili içerik
Event Hubs hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: