Ketersediaan dan konsistensi di Pusat Aktivitas

Artikel ini menyediakan informasi tentang ketersediaan dan konsistensi yang didukung oleh Azure Event Hubs.

Ketersediaan

Azure Event Hubs menjamin penyebaran risiko kegagalan bencana mesin individu atau bahkan pada rak sepenuhnya melalui kluster yang mencakup beberapa domain kegagalan di dalam pusat data. Ini menerapkan deteksi kegagalan transparan dan mekanisme kegagalan sehingga layanan akan terus beroperasi dalam tingkat layanan yang terjamin dan biasanya tanpa gangguan yang besar ketika kegagalan tersebut terjadi.

Jika namespace layanan Azure Event Hubs dibuat di wilayah dengan availability zones, risiko pemadaman lebih lanjut dapat tersebar di tiga fasilitas yang dipisahkan secara fisik. Layanan ini memiliki cadangan kapasitas yang cukup untuk segera mengatasi kehilangan total, bencana dari seluruh fasilitas. Untuk informasi selengkapnya, lihat Azure Event Hubs - Pemulihan bencana geografis.

Saat aplikasi klien mengirim peristiwa ke pusat aktivitas tanpa menentukan partisi, peristiwa didistribusikan secara otomatis di antara partisi di pusat aktivitas Anda. Jika partisi tidak tersedia untuk suatu alasan, peristiwa didistribusikan di antara partisi yang tersisa. Perilaku ini memberikan waktu operasional maksimum. Untuk kasus penggunaan yang memerlukan waktu aktif maksimum, model ini lebih disarankan dari mengirim peristiwa ke partisi tertentu.

Konsistensi

Dalam beberapa skenario, pengurutan peristiwa bisa menjadi penting. Misalnya, Anda mungkin ingin sistem back-end Anda memproses perintah pembaruan sebelum perintah hapus. Dalam skenario ini, aplikasi klien mengirim peristiwa ke partisi tertentu sehingga pengurutan dipertahankan. Ketika aplikasi konsumen mengonsumsi peristiwa ini dari partisi, mereka dibaca secara berurut.

Dengan konfigurasi ini, perlu diingat bahwa jika partisi tertentu yang Anda kirim tidak tersedia, Anda akan menerima respons kesalahan. Sebagai perbandingan, jika Anda tidak memiliki afinitas ke suatu partisi, layanan Pusat Aktivitas mengirimkan peristiwa Anda ke partisi berikutnya yang tersedia.

Oleh karena itu, jika ketersediaan tinggi adalah yang paling penting, jangan menargetkan partisi tertentu (menggunakan ID/kunci partisi). Menggunakan ID/kunci partisi menurunkan tingkat ketersediaan pusat aktivitas ke tingkat partisi. Dalam skenario ini, Anda membuat pilihan eksplisit antara ketersediaan (tidak ada ID/kunci partisi) dan konsistensi (menyematkan peristiwa ke partisi tertentu). Untuk informasi detail tentang partisi di Pusat Aktivitas, lihat Partisi.

Lampiran

Mengirim peristiwa tanpa menentukan partisi

Sebaiknya kirim peristiwa ke pusat aktivitas tanpa mengatur informasi partisi demi memungkinkan layanan Pusat Aktivitas untuk menyeimbangkan muatan di seluruh partisi. Lihat panduan memulai cepat berikut ini untuk mempelajari cara melakukannya dalam berbagai bahasa pemrograman.

Mengirim peristiwa ke partisi tertentu

Di bagian ini, Anda mempelajari cara mengirim peristiwa ke partisi tertentu menggunakan bahasa pemrograman yang berbeda.

Untuk mengirim peristiwa ke partisi tertentu, buat batch menggunakan metode EventHubProducerClient.CreateBatchAsync dengan menentukan PartitionId atau PartitionKey di CreateBatchOptions. Kode berikut mengirimkan batch peristiwa ke partisi tertentu dengan menentukan kunci partisi. Event Hubs memastikan bahwa semua event yang berbagi nilai kunci partisi disimpan bersama dan dikirimkan dalam urutan kedatangan.

var batchOptions = new CreateBatchOptions { PartitionKey = "cities" };
using var eventBatch = await producer.CreateBatchAsync(batchOptions);

Anda juga dapat menggunakan metode EventHubProducerClient.SendAsync dengan menentukan PartitionId atau PartitionKey di SendEventOptions.

var sendEventOptions  = new SendEventOptions { PartitionKey = "cities" };
// create the events array
producer.SendAsync(events, sendEventOptions)

Langkah berikutnya

Anda dapat mempelajari selengkapnya tentang Azure Event Hubs dengan mengunjungi tautan berikut: