Event Hubs ile ölçeklendirmeScaling with Event Hubs

Event Hubs ile ölçeklendirme etkileyen iki faktörleri vardır.There are two factors which influence scaling with Event Hubs.

  • İşleme birimleriThroughput units
  • BölümlerPartitions

İşleme birimleriThroughput units

Event Hubs işleme kapasitesi, işleme birimleri tarafından denetlenir.The throughput capacity of Event Hubs is controlled by throughput units. İşleme birimleri önceden satın alınan kapasite birimleridir.Throughput units are pre-purchased units of capacity. Tek bir aktarım hızı sağlar:A single throughput lets you:

  • Giriş: İkinci veya 1000 olaya (hangisi önce gerçekleşirse) saniye başına başına 1 MB'a kadar.Ingress: Up to 1 MB per second or 1000 events per second (whichever comes first).
  • Çıkış: İkinci veya 4096 olay / saniye başına 2 MB'a kadar.Egress: Up to 2 MB per second or 4096 events per second.

Satın alınan işleme birimlerinin kapasitesi aşıldığında giriş azaltılır ve ServerBusyException döndürülür.Beyond the capacity of the purchased throughput units, ingress is throttled and a ServerBusyException is returned. Çıkış, azaltma özel durumları oluşturmaz, ancak yine de satın alınan işleme birimlerinin kapasitesiyle sınırlıdır.Egress does not produce throttling exceptions, but is still limited to the capacity of the purchased throughput units. 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.If you receive publishing rate exceptions or are expecting to see higher egress, be sure to check how many throughput units you have purchased for the namespace. Üretilen iş birimleri yönetebileceğiniz ölçek alanlarının dikey Azure portalında.You can manage throughput units on the Scale blade of the namespaces in the Azure portal. Üretilen iş birimleri program aracılığıyla kullanarak da yönetebilirsiniz olay hub'ları API.You can also manage throughput units programmatically using the Event Hubs APIs.

İşleme birimleri önceden satın alınır ve saat başına faturalandırılır.Throughput units are pre-purchased and are billed per hour. Satın alındıktan sonra işleme birimleri en az bir saat için faturalandırılır.Once purchased, throughput units are billed for a minimum of one hour. En fazla 20 işleme birimi bir Event Hubs ad alanı için satın alınabilir ve bu ad alanındaki tüm event hubs arasında paylaşılır.Up to 20 throughput units can be purchased for an Event Hubs namespace and are shared across all event hubs in that namespace.

Otomatik şişme özellik Event Hubs'ın otomatik olarak ölçeklendirilebilir üretilen iş birimi sayısını artırarak, kullanım karşılaması gerekir.The Auto-inflate feature of Event Hubs automatically scales up by increasing the number of throughput units, to meet usage needs. Üretilen iş birimleri artırma engeller azaltma senaryoları, burada:Increasing throughput units prevents throttling scenarios, in which:

  • Veri giriş hızlarını kümesi işleme birimleri en fazla.Data ingress rates exceed set throughput units.
  • Veri çıkışı istek hızları kümesi işleme birimleri en fazla.Data egress request rates exceed set throughput units.

Tüm istekleri ServerBusy hatalarla başarısız olmadan en düşük eşikten yüksek yük artırdığı durumlarda Event Hubs hizmeti verimliliğini artırır.The Event Hubs service increases the throughput when load increases beyond the minimum threshold, without any requests failing with ServerBusy errors.

Hakkında daha fazla bilgi için otomatik şişme özelliği için bkz: işleme birimlerini otomatik ölçeklendirme.For more information about the auto-inflate feature, see Automatically scale throughput units.

BölümlerPartitions

Event Hubs her bir tüketicinin ileti akışında yalnızca belirli bir alt küme ya da bölümü okuduğu bölünmüş bir tüketici modeli aracılığıyla ileti akışı sağlar.Event Hubs provides message streaming through a partitioned consumer pattern in which each consumer only reads a specific subset, or partition, of the message stream. Bu model, olay işleme için yatay ölçek sağlar ve kuyruklar ile konularda kullanılamayan diğer akış odaklı özellikleri sunar.This pattern enables horizontal scale for event processing and provides other stream-focused features that are unavailable in queues and topics.

Bölüm bir olay hub'ında tutulan olayların sıralı dizisidir.A partition is an ordered sequence of events that is held in an event hub. Yeni olaylar geldikçe dizinin sonuna eklenir.As newer events arrive, they are added to the end of this sequence. Bölüm bir "yürütme günlüğü" olarak düşünülebilir.A partition can be thought of as a "commit log."

Event Hubs

Olay hub'ları, tüm bölümler, olay hub'ı uygulayan bir yapılandırılmış elde tutma süresi verilerini korur.Event Hubs retains data for a configured retention time that applies across all partitions in the event hub. Olayların süresi saat bazında dolar; bunları açıkça silemezsiniz.Events expire on a time basis; you cannot explicitly delete them. Bölümler birbirinden bağımsız olup kendi veri dizisini içerdiğinden genellikle farklı hızlarda büyürler.Because partitions are independent and contain their own sequence of data, they often grow at different rates.

Event Hubs

Bölüm sayısı, oluşturma sırasında belirtilir ve 2 ile 32 arasında olmalıdır.The number of partitions is specified at creation and must be between 2 and 32. Bölüm sayısı değiştirilemez; bu nedenle, bölüm sayısını ayarlarken uzun vadeli ölçeği dikkate almanız gerekir.The partition count is not changeable, so you should consider long-term scale when setting partition count. Bölümler, tüketen uygulamalarda gerekli aşağı akış paralelliğiyle ilişkili bir veri düzenleme mekanizmasıdır.Partitions are a data organization mechanism that relates to the downstream parallelism required in consuming applications. Bir olay hub'ındaki bölüm sayısı, sahip olmayı beklediğiniz eşzamanlı okuyucu sayısıyla doğrudan ilgilidir.The number of partitions in an event hub directly relates to the number of concurrent readers you expect to have. Event Hubs ekibine başvurarak bölüm sayısını 32’nin üzerine çıkarabilirsiniz.You can increase the number of partitions beyond 32 by contacting the Event Hubs team.

Oluşturma sırasında 32 olan mümkün olan en yüksek değer olarak ayarlamak isteyebilirsiniz.You may want to set it to be the highest possible value, which is 32, at the time of creation. Göndericilerin, geri kalan 31 bölümden oluşan 32 ' dan yalnızca tek bir bölüme gönderilmesi için yapılandırmadığınız müddetçe, birden fazla bölüme sahip olmanın sırayı korumadan birden çok bölüme gönderilmesine neden olacağını unutmayın.Remember that having more than one partition will result in events sent to multiple partitions without retaining the order, unless you configure senders to only send to a single partition out of the 32 leaving the remaining 31 partitions redundant. Önceki durumda, tüm 32 bölümlerdeki olayları okumanız gerekir.In the former case, you will have to read events across all 32 partitions. İkinci durumda, olay Işlemcisi ana bilgisayarında yapmanız gerekek yapılandırmadan farklı bir ek maliyet yoktur.In the latter case, there is no obvious additional cost apart from the extra configuration you have to make on Event Processor Host.

Bölümler tanımlanabilir ve doğrudan gönderilebilir olsa da doğrudan bir bölüme göndermek önerilmez.While partitions are identifiable and can be sent to directly, sending directly to a partition is not recommended. Bunun yerine, olay yayımcıları bölümünde tanıtılan daha yüksek düzey yapıları kullanabilirsiniz.Instead, you can use higher level constructs introduced in the Event publishers section.

Bölümler, olayı, kullanıcı tanımlı bir özellik paketini ve bölümdeki uzaklığı ve akış dizisindeki sayısı gibi meta verileri gövdesi içerir olay verileri dizisi ile doldurulur.Partitions are filled with a sequence of event data that contains the body of the event, a user-defined property bag, and metadata such as its offset in the partition and its number in the stream sequence.

En iyi ölçeğe ulaşmak için 1:1 üretilen iş birimi ve bölüm dengelemenize önerilir.We recommend that you balance 1:1 throughput units and partitions to achieve optimal scale. Tek bir bölümde, bir üretilen iş birimi için garantili giriş ve çıkış vardır.A single partition has a guaranteed ingress and egress of up to one throughput unit. Bir bölüm üzerinde daha yüksek aktarım hızı elde edebiliyor olsa da, performans garanti edilmez.While you may be able to achieve higher throughput on a partition, performance is not guaranteed. Bu nedenle, bir olay hub 'ındaki bölüm sayısının üretilen iş birimi sayısına eşit veya daha büyük olması önemle önerilir.This is why we strongly recommend that the number of partitions in an event hub be greater than or equal to the number of throughput units.

İhtiyaç duyduğunuz toplam üretilen iş miktarı verildiğinde, ihtiyacınız olan üretilen iş birimi sayısını ve minimum bölüm sayısını, kaç bölüm olması gerektiğini öğrenirsiniz.Given the total throughput you plan on needing, you know the number of throughput units you require and the minimum number of partitions, but how many partitions should you have? Elde etmek istediğiniz aşağı akış paralelliğini ve gelecekteki verimlilik ihtiyaçlarınızı temel alarak bölüm sayısı ' nı seçin.Choose number of partitions based on the downstream parallelism you want to achieve as well as your future throughput needs. Bir olay hub 'ında bulunan bölüm sayısı için ücret alınmaz.There is no charge for the number of partitions you have within an Event Hub.

Bölümleri ve kullanılabilirlikleri ile güvenilirlikleri arasındaki dengeleme hakkında daha fazla bilgi için, bkz: Event Hubs programlama kılavuzu ve Event Hubs’ta kullanılabilirlik ve tutarlılık makalesi.For more information about partitions and the trade-off between availability and reliability, see the Event Hubs programming guide and the Availability and consistency in Event Hubs article.

Bölüm anahtarıPartition key

Gelen olay verilerini veri düzenleme amacıyla belirli bölümlere eşlemek için bölüm anahtarı kullanabilirsiniz.You can use a partition key to map incoming event data into specific partitions for the purpose of data organization. Bölüm anahtarı, gönderen tarafından belirtilip bir olay hub'ına geçirilen değerdir.The partition key is a sender-supplied value passed into an event hub. Statik karma işlevi ile işlenir ve sonuçta bölüm ataması oluşturulur.It is processed through a static hashing function, which creates the partition assignment. Bir olayı yayımlarken bölüm anahtarı belirtmezseniz hepsini bir kez deneme ataması kullanılır.If you don't specify a partition key when publishing an event, a round-robin assignment is used.

Olay yayımcısı yalnızca bölüm anahtarını bilir, olayların yayımlandığı bölümü bilmez.The event publisher is only aware of its partition key, not the partition to which the events are published. 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.This decoupling of key and partition insulates the sender from needing to know too much about the downstream processing. 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.A per-device or user unique identity makes a good partition key, but other attributes such as geography can also be used to group related events into a single partition.

Sonraki adımlarNext steps

Aşağıdaki bağlantıları inceleyerek Event Hubs hakkında daha fazla bilgi edinebilirsiniz:You can learn more about Event Hubs by visiting the following links: