Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
- Kirim event menggunakan .NET
- Send event menggunakan Java
- Kirim peristiwa menggunakan JavaScript
- Mengirim event menggunakan Python
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: