Event Hubs’da kullanılabilirlik ve tutarlılık
Bu makalede, Azure Event Hubs tarafından desteklenen kullanılabilirlik ve tutarlılık hakkında bilgi sağlanır.
Kullanılabilirlik
Azure Event Hubs, tek tek makinelerin ve hatta eksiksiz rafların yıkıcı arıza riskini, bir veri merkezindeki birden çok hata etki alanına yayılan kümeler arasında yayılım. Saydam hata algılama ve yük devretme mekanizmaları uygular, böylece hizmet garanti edilen hizmet düzeylerinde ve genellikle bu tür hatalar oluştuğunda fark edilebilir kesintiler olmadan çalışmaya devam eder.
Kullanılabilirlik alanları olan bir bölgede Bir Event Hubs ad alanı oluşturulursa, kesinti riski fiziksel olarak ayrılmış üç tesise daha yayılır ve hizmetin tüm tesisin tam ve yıkıcı kaybıyla anında başa çıkmak için yeterli kapasite rezervi vardır. Daha fazla bilgi için bkz. Azure Event Hubs - Coğrafi olağanüstü durum kurtarma.
bir istemci uygulaması bir bölüm belirtmeden olayları bir olay hub'ına gönderdiğinde, olaylar olay hub'ınızdaki bölümler arasında otomatik olarak dağıtılır. Herhangi bir nedenle bir bölüm kullanılamıyorsa, olaylar kalan bölümler arasında dağıtılır. Bu davranış, en fazla sürenin dolmasını sağlar. Maksimum çalışma süresi gerektiren kullanım örnekleri için, olayları belirli bir bölüme göndermek yerine bu model tercih edilir.
Tutarlılık
Bazı senaryolarda olayların sıralanması önemli olabilir. Örneğin, arka uç sisteminizin silme komutu öncesinde bir güncelleştirme komutunu işlemesini isteyebilirsiniz. Bu senaryoda, bir istemci uygulaması sıralamanın korunması için olayları belirli bir bölüme gönderir. Bir tüketici uygulaması bölümden bu olayları tükettiğinde, sırayla okunur.
Bu yapılandırmayla, gönderdiğiniz belirli bölüm kullanılamıyorsa bir hata yanıtı alabileceğinizi unutmayın. Karşılaştırma noktası olarak, tek bir bölüme benziniminiz yoksa Event Hubs hizmeti olayınızı bir sonraki kullanılabilir bölüme gönderir.
Bu nedenle, yüksek kullanılabilirlik en önemliyse, belirli bir bölümü hedeflemeyin (bölüm kimliği/anahtarı kullanarak). Bölüm kimliği/anahtarı kullanıldığında olay hub'ının kullanılabilirliği bölüm düzeyine düşürüler. Bu senaryoda kullanılabilirlik (bölüm kimliği/anahtarı olmadan) ile tutarlılık (olayları belirli bir bölüme sabitleme) arasında açık bir seçim yapıyorsunuz. Event Hubs'daki bölümler hakkında ayrıntılı bilgi için bkz. Bölümler.
Ek
Bölüm belirtmeden olayları gönderme
Event Hubs hizmetinin bölümler arasında yükü dengelemesine izin vermek için bölüm bilgilerini ayarlamadan olay hub'ına olay göndermenizi öneririz. Bunun farklı programlama dillerinde nasıl yapılacağını öğrenmek için aşağıdaki hızlı başlangıçlara bakın.
- .NET kullanarak olay gönderme
- Java kullanarak olay gönderme
- JavaScript kullanarak olay gönderme
- Python kullanarak olayları gönderme
Olayları belirli bir bölüme gönderme
Bu bölümde, farklı programlama dillerini kullanarak olayları belirli bir bölüme göndermeyi öğreneceksiniz.
Olayları belirli bir bölüme göndermek için, CreateBatchOptions içinde veya PartitionKey
belirterek PartitionId
EventHubProducerClient.CreateBatchAsync yöntemini kullanarak toplu işlemi oluşturun. Aşağıdaki kod, bir bölüm anahtarı belirterek belirli bir bölüme toplu olaylar gönderir. Event Hubs, bölüm anahtarı değerini paylaşan tüm olayların birlikte depolanmasını ve varma sırasına göre teslim edilmesini sağlar.
var batchOptions = new CreateBatchOptions { PartitionKey = "cities" };
using var eventBatch = await producer.CreateBatchAsync(batchOptions);
Ayrıca, SendEventOptions içinde PartitionId veya PartitionKey belirterek EventHubProducerClient.SendAsync yöntemini de kullanabilirsiniz.
var sendEventOptions = new SendEventOptions { PartitionKey = "cities" };
// create the events array
producer.SendAsync(events, sendOptions)
Sonraki adımlar
Aşağıdaki bağlantıları inceleyerek Event Hubs hakkında daha fazla bilgi edinebilirsiniz: