Ketersediaan dan konsistensi di Pusat Aktivitas

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

Ketersediaan

Azure Event Hubs menyebarkan risiko kegagalan bencana kepada masing-masing komputer atau bahkan menyelesaikan rak di seluruh kluster yang mencakup beberapa domain kegagalan 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 Pusat Aktivitas dibuat di wilayah dengan zona ketersediaan, risiko pemadaman lebih lanjut tersebar di tiga fasilitas yang terpisah secara fisik, dan layanan ini memiliki cadangan kapasitas yang cukup untuk langsung mengatasi hilangnya seluruh fasilitas yang lengkap dan mengerikan. Untuk informasi selengkapnya, lihat Azure Event Hubs - Pemulihan Bencana Geo.

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 memungkinkan untuk jumlah waktu aktif terbaik. 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 mulai 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. Pusat Aktivitas memastikan bahwa semua peristiwa 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, sendOptions)

Langkah berikutnya

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