Topik ini menjelaskan kebijakan ulang konsumen sisi server default untuk ApsaraMQ for RabbitMQ, serta cara penanganan pesan setelah terjadi kegagalan konsumsi agar Anda dapat memilih kebijakan pemrosesan yang sesuai.
Alur ulang konsumen
Mekanisme ulang konsumen meningkatkan keandalan sistem dan konsistensi data dengan secara otomatis mencoba mengirim atau memproses ulang pesan ketika terjadi kegagalan sementara.
-
Ready: Pesan yang berada dalam antrian dan menunggu untuk dikonsumsi.
-
Unack: Pesan yang telah diambil oleh konsumen tetapi belum diakui (acknowledged). Artinya, pesan telah diterima tetapi belum sepenuhnya diproses.
Properti kebijakan ulang
Kebijakan ulang konsumen terdiri dari dua properti utama: timeout konsumsi dan jumlah maksimum upaya pengiriman.
Timeout konsumsi
Timeout konsumsi adalah waktu maksimum yang diberikan kepada konsumen untuk memproses sebuah pesan. Jika konsumen tidak memproses pesan dalam batas waktu tersebut, pesan akan kembali ke status Ready dan dapat diambil oleh konsumen lain. Menetapkan timeout konsumsi yang wajar memberikan keuntungan berikut:
-
Hindari penundaan lama: Timeout konsumsi yang wajar mencegah konsumen tertahan terlalu lama saat memproses sebuah pesan, sehingga menghindari akumulasi pesan dan meningkatkan kinerja sistem secara keseluruhan.
-
Menjamin pemrosesan pesan yang andal: Jika sebuah konsumen tidak dapat memproses pesan dalam waktu yang ditentukan, ApsaraMQ for RabbitMQ akan mengirimkan ulang pesan tersebut ke konsumen lain, sehingga memastikan pesan diproses secara tepat waktu.
Jumlah maksimum upaya pengiriman
Jumlah maksimum upaya pengiriman adalah jumlah maksimum kali sistem mencoba mengirimkan pesan ke konsumen. Menetapkan jumlah maksimum upaya pengiriman yang wajar memberikan keuntungan berikut:
-
Hindari pengulangan tanpa henti: Menetapkan batas maksimum jumlah pengiriman mencegah pesan dikirim ulang tanpa henti, sehingga menghindari pemborosan sumber daya sistem.
-
Failover: Ketika jumlah maksimum upaya pengiriman tercapai, sistem dapat meneruskan pesan ke dead-letter queue, sehingga pengembang dapat menganalisis dan memproses pesan tersebut.
Properti x-delivery-limit pada antrian menentukan jumlah maksimum pengiriman ulang. Jumlah maksimum upaya pengiriman sama dengan x-delivery-limit + 1.
Deskripsi parameter kebijakan ulang instans
|
Jenis instans |
Instans Serverless |
Instans Langganan |
||
|
Shared |
Dedicated |
Enterprise Edition |
Platinum Edition |
|
|
Reserved + Elastic / Pay-by-accumulated usage |
Reserved + Elastic |
|||
|
Timeout konsumsi |
Maksimum: 3 jam Bawaan: 5 menit |
Maksimum: 12 jam Bawaan: 30 menit |
Maksimum: 3 jam Bawaan: 5 menit |
Maksimum: 12 jam Bawaan: 30 menit |
|
Jumlah maksimum upaya pengiriman |
Maksimum: 16 Bawaan: 16 |
Maksimum: 16 Bawaan: 16 |
Maksimum: 16 Bawaan: 16 |
Maksimum: 64 Bawaan: 16 |
Ubah kebijakan ulang konsumen
-
Masuk ke Konsol ApsaraMQ for RabbitMQ.
-
Pada halaman Overview, di bagian Resource Distribution, pilih wilayah dan klik instans target.
-
Kebijakan ulang instans
-
Pada halaman Instance Details, klik tab Retry Policy, lalu klik Edit.
-
Pada panel Modify Retry Policy, atur nilai untuk Maximum Number of Deliveries dan Consumption Timeout Period sesuai rentang nilai yang dijelaskan di atas.
-
-
Kebijakan ulang antrian
-
Pada panel navigasi di sebelah kiri, klik Queue List, lalu klik antrian target.
-
Pada halaman Queue Details, klik tab Retry Policy, lalu klik Edit.
-
Pada panel Modify Retry Policy, atur nilai untuk Inherit Instance Configurations, Maximum Number of Deliveries, dan Consumption Timeout Period sesuai rentang nilai yang dijelaskan di atas.

-
Jika suatu antrian mewarisi konfigurasi instans, kebijakan ulangnya ditentukan oleh konfigurasi tingkat instans. Kebijakan ulang antrian akan diperbarui setiap kali konfigurasi tingkat instans berubah.
-
Jika suatu antrian tidak mewarisi konfigurasi instans, kebijakan ulangnya dikonfigurasi secara independen dan menggantikan konfigurasi tingkat instans.
-
-
-
-
Klik OK.